Solved

asp.net moving to next record

Posted on 2012-03-29
7
384 Views
Last Modified: 2012-03-30
I have found some code on the net and altered it a bit, but it onl works one time.
I need to 'scroll' through my records. But I can only go one time to the next record, what is wrong ?
code.txt
0
Comment
Question by:troosters
  • 3
  • 2
  • 2
7 Comments
 
LVL 20

Expert Comment

by:BuggyCoder
ID: 37785868
Do this:-

protected void btnNext_Click(object sender, EventArgs e)
        {
                int rowIndex = 0;

                if(Session["rowIndex"]!=null)
                {
                    rowIndex = Convert.ToInt32(Session["rowIndex"]);
                    rowIndex++;
                }

                Session["rowIndex"]=rowIndex;
                if (Session["dt"] !=
                null)
                {
                    DataTable dt = (DataTable)Session["dt"];
                    if (rowIndex <= dt.Rows.Count)
                    {
                        txtName.Text = dt.Rows[rowIndex]["Name"].ToString();
                    }

                }

            
        }

Open in new window


Basically need to store rowindex in session so that its state persists during postbacks...
0
 
LVL 6

Expert Comment

by:ingriT
ID: 37785874
You keep on going to row 1 in your code (because you set it to 0 in the first line).

I'm not sure if keeping your datatable in a session is the best solution, why do you do that?

But if you also put your rowindex in a session variable, in the page_load where you also put your datatable in the session and then everytime when the btnNext is clicked you do the rowindex++ (and not the int rowindex = 0), you will get the next line.
0
 

Author Comment

by:troosters
ID: 37785881
BuggyCoder, I use int rowIndex = 1; at the beginning otherwise it just shows the first one twice. Also it goes on after the last record and then errors, so I changed if (rowIndex < dt.Rows.Count) in stead of <=

ingriT, I just found this code on the internet.
Is there a better way of doing it ? Now I just show one textbox, but it is going to be like 15 textboxes when it's finished.
0
Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

 
LVL 6

Expert Comment

by:ingriT
ID: 37785887
What are you trying to achieve with your page? Are you showing a recordset, with a button to go to the next record? I would use a ListView for that, with a DataPager and a SqlDataSource, or a GridView with AllowPaging="true" and a SqlDataSource.

See these pages for an example:
http://www.4guysfromrolla.com/articles/021308-1.aspx
http://www.codeproject.com/Articles/16238/GridView-Custom-Paging
0
 
LVL 20

Accepted Solution

by:
BuggyCoder earned 300 total points
ID: 37785899
protected void btnNext_Click(object sender, EventArgs e)
        {
                int rowIndex = -1;

                if(Session["rowIndex"]!=null)
                {
                    rowIndex = Convert.ToInt32(Session["rowIndex"]);
                    rowIndex++;
                }

                Session["rowIndex"]=rowIndex;
                if (Session["dt"] !=
                null)
                {
                    DataTable dt = (DataTable)Session["dt"];
                    if (rowIndex < dt.Rows.Count)
                    {
                        txtName.Text = dt.Rows[rowIndex]["Name"].ToString();
                    }
                    else
                    {
                        //No More Data To Display
                    }

                }

Open in new window

           
        }
0
 

Author Comment

by:troosters
ID: 37785903
Do you also use that if you just want to show one record at a time. The record will contain lot's of info like name, firstname, address, language, work , job, weekend, car, driving licence, studies, hobbies, info, work experience, age, born, married, children, gender, nationality, ...

I thought to have a good overview it would be better to use something to fill textboxes which I can place wherever I want ?
0
 
LVL 6

Assisted Solution

by:ingriT
ingriT earned 200 total points
ID: 37785912
With the ListView there are a lot of options, including a DetailsView, to show all the information about one record.
See this page for a basic example; http://leedumond.com/blog/master-detail-editing-inserting-deleting-with-a-listview-and-detailsview/

You don't have to do the deleting/inserting, but it is a nice solution. It also keeps your code clean and easy to maintain imho.
0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…

785 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question