這兩天公司做了個程序,由于數(shù)據(jù)比較多,使用分頁控件aspNetPager.dll(7.0.2) 控件來分頁,比較方便。
不過昨天有人提了個要求,說在修改第十頁的數(shù)據(jù)后,操作完了會自動返回第一頁,我再到第十頁的時候翻頁會比較麻煩。能不能有個方法修改完了,返回的時候還是第十頁,這樣就方面了很多。剛開始的時候想想很簡單么。只要把頁數(shù)AspNetPager1.CurrentPageIndex保存在session里面 在加載的時候如果session中有值的話就把session中的值設(shè)置給AspNetPager1.CurrentPageIndex不就行了么,
,說干就干,改過以后,修改返回來的時候CurrentPageIndex怎么還是1,而且沒辦法修改,,搞了我半天,見鬼了,去網(wǎng)上也沒找到這方面的資料介紹,郁悶啊。沒辦法,自己調(diào),試了半天發(fā)現(xiàn)一個問題。分頁控件初次加載的時候是沒有數(shù)據(jù)的,它的記錄數(shù)為0.但是我現(xiàn)在要把它設(shè)為第十頁,那它做分頁的顯示(上一頁 4 5 6 6 7 8 .... 下一頁 )的時候就會出問題,報錯(0條數(shù)據(jù)沒法分10頁啊,
),可偏偏這個控件它就是不報錯,估計是把異常捕獲掉了,然后就設(shè)死加載沒數(shù)據(jù)的時候就是第一頁,不讓修改。知道這個道理就簡單了,我離開頁面之前同時保存CurrentPageIndex 和RecordCount不就行了,下次回來的時候只要這兩個值都存在,先綁定RecordCount 告訴它我有這么多條數(shù)據(jù),再設(shè)定CurrentPageIndex,這樣它就可以做分頁了,馬上修改,搞定!
,記錄下來,希望以后忘了還有個找的地方。下面是部分代碼:
/// <summary>
/// 保存分頁控件的當前頁
/// </summary>
public void SaveAspNetPagerIndex()
{
Session["ReceiveListPageIndex"] = AspNetPager1.CurrentPageIndex;
Session["ReceiveListcount"] = AspNetPager1.RecordCount;
}
protected void ANPMember_PageChanged(object sender, EventArgs e)
{
SaveAspNetPagerIndex();
Bind();
}
///在首次加載頁面的時候看一下,有沒有保存的記錄,有就綁定
if (Session["ReceiveListPageIndex"] != null)
{
AspNetPager1.RecordCount = int.Parse(Session["ReceiveListcount"].ToString());
AspNetPager1.CurrentPageIndex = int.Parse(Session["ReceiveListPageIndex"].ToString());
}
注:引用自http://hi.baidu.com/hao_2468/blog/item/d055334d3247fc3dafc3ab92.html
我個人的解決方案用的url傳值
聯(lián)系客服