Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 410
  • Last Modified:

asp.net moving to next record

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
troosters
Asked:
troosters
  • 3
  • 2
  • 2
2 Solutions
 
BuggyCoderCommented:
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
 
ingriTCommented:
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
 
troostersAuthor Commented:
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
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
ingriTCommented:
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
 
BuggyCoderCommented:
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
 
troostersAuthor Commented:
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
 
ingriTCommented:
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

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 3
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now