快速业务通道

ASP.NET GridView学习之二 自定义分页功能

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19

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

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号