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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 利用Jmail接收邮件下一篇: Web注册表单设计样式的研究(上)
关于ASP.NET GridView学习之二 自定义分页功能的所有评论