這兩天公司做了個(gè)程序,由于數(shù)據(jù)比較多,使用分頁控件aspNetPager.dll(7.0.2) 控件來分頁,比較方便。
不過昨天有人提了個(gè)要求,說在修改第十頁的數(shù)據(jù)后,操作完了會自動(dòng)返回第一頁,我再到第十頁的時(shí)候翻頁會比較麻煩。能不能有個(gè)方法修改完了,返回的時(shí)候還是第十頁,這樣就方面了很多。剛開始的時(shí)候想想很簡單么。只要把頁數(shù)AspNetPager1.CurrentPageIndex保存在session里面 在加載的時(shí)候如果session中有值的話就把session中的值設(shè)置給AspNetPager1.CurrentPageIndex不就行了么,
(上一頁 4 5 6 6 7 8 .... 下一頁 )的時(shí)候就會出問題,報(bào)錯(cuò)(0條數(shù)據(jù)沒法分10頁啊,
知道這個(gè)道理就簡單了,我離開頁面之前同時(shí)保存CurrentPageIndex 和RecordCount不就行了,下次回來的時(shí)候只要這兩個(gè)值都存在,先綁定RecordCount 告訴它我有這么多條數(shù)據(jù),再設(shè)定CurrentPageIndex,這樣它就可以做分頁了,馬上修改,搞定!
下面是部分代碼:
/// <summary>
/// 保存分頁控件的當(dāng)前頁
/// </summary>
public void SaveAspNetPagerIndex()
{
Session["ReceiveListPageIndex"] = AspNetPager1.CurrentPageIndex;
Session["ReceiveListcount"] = AspNetPager1.RecordCount;
}
protected void ANPMember_PageChanged(object sender, EventArgs e)
{
SaveAspNetPagerIndex();
Bind();
}
///在首次加載頁面的時(shí)候看一下,有沒有保存的記錄,有就綁定
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
我個(gè)人的解決方案用的url傳值