When using the Datapager with a ListView I had the following problem. When clicking a paging button for the first time nothing happens.But when I click a button the second time, then the page from the first click loads.
I search the internet for a solution and found that you need to add some code to the OnPagePropertiesChanging event of the list view to reload the DataPager.
The following code is the solution to my problem. Including a fix that the data doesn’t get loaded two times.
private List productList; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) fillGrid(); } private void fillGrid() { if(productList == null) productList = getproducts(); ListView1.DataSource = productList; ListView1.DataBind(); DataPager1.DataBind(); } public List getproducts() { using (AdventureWrksDataContext db = new AdventureWrksDataContext()) { return db.Products.ToList(); } } protected void lvproducts_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e) { DataPager1.SetPageProperties(e.StartRowIndex, e.MaximumRows, false); fillGrid(); }
You can download the solution (PagingExample.zip (83.05 kb))
Cheers,
Pieter
Hi,
Thanks for the Code, i was searching for this problem for a long long time. Again I appreciate you work Thank you Again!!
Ohhh 🙂 God Bless you, man. I was trying to fix that bug for a couple of hours. Finally I made it – thanks to your post 🙂
Thanks a lot!