程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET GridView學習之二 自定義分頁功能

ASP.NET GridView學習之二 自定義分頁功能

編輯:關於ASP.NET

1就一些核心代碼

2ClientInfo.cs和ClientinfoAccessObj.cs在學習一中有過了

 3
 4using System;
 5using System.Data;
 6using System.Configuration;
 7using System.Collections;
 8using System.Web;
 9using System.Web.Security;
10using System.Web.UI;
11using System.Web.UI.WebControls;
12using System.Web.UI.WebControls.WebParts;
13using System.Web.UI.HtmlControls;
14using System.Collections.Generic;
15
16public partial class GridViewPagingTest : System.Web.UI.Page
17{
18  private int PageSize = 10; //每頁顯示記錄數
19
20  //當前頁碼,從1開始,利用ViewState在回發之間保存數據
21  private int curPage
22  {
23    get
24    {
25      return ViewState["curPage"] == null ? 0 : Convert.ToInt32(ViewState["curPage"]);
26    }
27    set
28    {
29      ViewState["curPage"] = value;
30    }
31  }
32
33  //總頁數,利用ViewState在回發之間保存數據
34  private int PageCount
35  {
36    get
37    {
38      return ViewState["PageCount"] == null ? 0 : Convert.ToInt32(ViewState["PageCount"]);
39    }
40    set
41    {
42      ViewState["PageCount"] = value;
43    }
44  }
45
46
47  protected void Page_Load(object sender, EventArgs e)
48  {
49    if (!IsPostBack)
50    {
51      //第一次請求
52      curPage = 1;
53      GridView1.DataSource = GetClientsForPage(curPage);//根據當前頁獲得客戶信息
54      lblInfo.Text = string.Format("第{0}頁/共{1}頁", 1, PageCount);
55      GridView1.DataBind();//綁定數據
56    }
57  }
58  //根據頁下標獲得頁面的客戶信息
59  private List<ClientInfo> GetClientsForPage(int pageIndex)
60  {
61    ClientInfoAccessObj accessor = new ClientInfoAccessObj();
62    List<ClientInfo> clients = accessor.GetAllClients();//獲得所有客戶信息
63    PageCount = clients.Count / PageSize + 1;//將客戶信息的總數除以每頁顯示的記錄數獲得總頁數
64    if (pageIndex > PageCount)
65      return null;
66    int StartIndex = (pageIndex - 1) * PageSize;//獲得數據下標
67    List<ClientInfo> ret = new List<ClientInfo>();
68    for (int i = StartIndex; i < StartIndex + PageSize && i < clients.Count; i++)
69      ret.Add(clients[i]);
70    return ret;
71  }
72  protected void btnNext_Click(object sender, EventArgs e)
73  {
74    if (curPage+1>PageCount)//判斷當前是否大於頁總數
75    {
76      curPage = PageCount;
77    }
78    else
79    {
80      curPage++;
81    }
82    GridView1.DataSource = GetClientsForPage(curPage);
83    lblInfo.Text = string.Format("第{0}頁/共{1}頁", curPage, PageCount);
84    GridView1.DataBind();
85  }
86  protected void btnPrew_Click(object sender, EventArgs e)
87  {
88    if (curPage - 1 ==0 )//判斷當前是否大於頁總數
89    {
90      curPage = 1;
91    }
92    else
93    {
94      curPage--;
95    }
96    GridView1.DataSource = GetClientsForPage(curPage);
97    lblInfo.Text = string.Format("第{0}頁/共{1}頁", curPage, PageCount);
98    GridView1.DataBind();
99  }
100  protected void btnGo_Click(object sender, EventArgs e)
101  {
102    try
103    {
104      int pageIndex = Convert.ToInt32(txtPageIndex.Text);
105      if (pageIndex > PageCount)
106      {
107        pageIndex = PageCount;
108      }
109      if (pageIndex < 1)
110      {
111        pageIndex = 1;
112      }
113      curPage = pageIndex;
114      GridView1.DataSource = GetClientsForPage(curPage);
115      lblInfo.Text = string.Format("第{0}頁/共{1}頁", curPage, PageCount);
116      GridView1.DataBind();
117    }
118    catch (Exception ex)
119    {
120      ClientScript.RegisterClientScriptBlock(this.GetType(),"info","alert('非法字符');",true);//向頁面注入javaScript腳本
121    }
122  }
123}
124
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved