首先下載:AspNetPager.dll AspNetPager.xml 放到bin目錄下
頁面添加<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
1 <webdiyer:AspNetPager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged" 2 FirstPageText="首頁" LastPageText="尾頁" NextPageText="下一頁" PrevPageText="上一頁" ShowPageIndexBox="Never" 3 AlwaysShow="true" UrlPaging="True" ReverseUrlPageIndex="True"> 4 </webdiyer:AspNetPager>
cs代碼中:
1 DataTable dt = new DataTable(); 2 PagedDataSource pds = new PagedDataSource(); 3 4 protected void Page_Load(object sender, EventArgs e) 5 { 6 dt = .......; 7 pds.DataSource = dt.DefaultView; 8 pds.AllowPaging = true; 9 pds.PageSize = 10; 10 AspNetPager1.RecordCount = pds.Count; 11 AspNetPager1.PageSize = pds.PageSize; 12 if (!IsPostBack) 13 { 14 Repeater1.DataSource = pds; 15 Repeater1.DataBind(); 16 } 17 } 18 } 19 20 protected void AspNetPager1_PageChanged(object sender, EventArgs e) 21 { 22 pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;//索引同步 23 Repeater1.DataSource = pds;//數據綁定 24 Repeater1.DataBind(); 25 }
這樣分頁顯示沒問題了,但要是頁面中有檢索條件,需要重新給datatable賦值的話,點翻頁就會出問題了。比如檢索出的數據有5頁,而page_load中加載的datatable有10頁。
點擊檢索按鈕檢索出需要的數據后,再翻頁又變成全部數據了。下邊解決。
1 DataTable dt = new DataTable(); 2 PagedDataSource pds = new PagedDataSource(); 3 static DataView view = new DataView(); 4 protected void Page_Load(object sender, EventArgs e) 5 { 6 dt = .....; 7 if (Request.QueryString["page"] == null) 8 { 9 view = dt.DefaultView; 10 } 11 if (!IsPostBack) 12 { 13 pds.DataSource = view; 14 AspNetPager1.RecordCount = view.Count; 15 pds.AllowPaging = true; 16 pds.PageSize = 5; 17 AspNetPager1.PageSize = pds.PageSize; 18 Repeater1.DataSource = pds; 19 Repeater1.DataBind(); 20 } 21 } 22 protected void AspNetPager1_PageChanged(object sender, EventArgs e) 23 { 24 pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;//索引同步 25 Repeater1.DataSource = pds;//數據綁定 26 Repeater1.DataBind(); 27 } 28 //按條件檢索 29 protected void Button1_Click(object sender, EventArgs e) 30 { 31 //button1 根據訂單編號和訂單時間搜索 32 string ddh = TextBox1.Text.Replace(" ", ""); 33 string startDt = TxtStartTime.Value; 34 string endDt = TxtEndTime.Value; 35 dt = 新table; 36 view = dt.DefaultView; 37 pds.DataSource = view; 38 AspNetPager1.RecordCount = view.Count; 39 pds.AllowPaging = true; 40 pds.PageSize = 5; 41 AspNetPager1.PageSize = pds.PageSize; 42 Repeater1.DataSource = pds; 43 Repeater1.DataBind(); 44 }