asp.net自制分页页码条控件
2014-07-07 11:59
344 查看
用过微软的服务器控件分页的人都知道~那卡的一A啊~
遂想自制分页页码条控件以备不时之需。
走你~
遂想自制分页页码条控件以备不时之需。
走你~
public static class PageShow { /// <summary> /// 分页页码条 /// </summary> /// <param name="requestHref">请求的地址</param> /// <param name="totalCount">数据总条数</param> /// <param name="currentPage">当前页码</param> /// <param name="pageSize">每页个数</param> /// <returns></returns> public static string Show(string requestHref, int totalCount, int currentPage, int pageSize) { //初始化pageSize和totalPages pageSize = pageSize == 0 ? 6 : pageSize;//默认为每页显示6条数据 var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1);//Math.Ceiling(totalCount / (pageSize / 1.0));//使用Ceiling函数也可以,效果是一样的,根据数据的总条数和每页要显示的个数,计算出总页数,如:共有96条数据,每页显示6条,则总页数为16 var outPut = new StringBuilder();//构建输出字符串 outPut.AppendFormat("<div class='pagination'>");//所有的样式需要自定义 //当总页数大于一页才分页显示,否则直接显示出该页 if (totalPages > 1) { //当前页面不是第一页的时候显示首页链接 if (currentPage != 1) { outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex=1&&pageSize={1}'>首页</a>" , requestHref, pageSize); } //当前页面大于第一页的时候显示上一页链接 if (currentPage > 1) { outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>上一页</a>" , requestHref, currentPage - 1, pageSize); } //否则上一页无法点击 else { outPut.AppendFormat("<span class='disabled'>上一页</span>"); } outPut.Append(" "); //循环输出页面列表 const int currint = 3; //最多有6个超链接,前3个后3个 for (int i = 0; i < 6; i++) { if (currentPage + i - currint >= 1 && currentPage + i - currint <= totalPages) { if (currint == i) { outPut.AppendFormat("<span class='disabled'>{0}</span>", currentPage + i - currint); } else { outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>{3}</a>" , requestHref, currentPage + i - currint, pageSize, currentPage + i - currint); } } outPut.Append(" "); } if (currentPage < totalPages) { outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>下一页</a>" , requestHref, currentPage + 1, pageSize); } else { outPut.AppendFormat("<span class='disabled'>下一页</span>"); } outPut.Append(" "); if (currentPage != totalPages) { outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>末页</a>" , requestHref, totalPages, pageSize); } outPut.Append(" "); } outPut.AppendFormat("第{0}页/共{1}页", currentPage, totalPages); outPut.AppendFormat("</div>"); return outPut.ToString(); } }
相关文章推荐
- asp.net自制分页页码条控件
- ASP.NET C# 后台输出的带页码的分页函数(不用控件)
- 创建用于 ASP.NET 的分页程序控件(Microsoft)
- 用DataList控件和ObjectDataSource在ASP.NET 2.0中实现高效能数据分页
- Asp.net中SQL/Oracle通用分页控件(摘抄)
- 使用 ASP.NET Atlas PageNavigator控件实现客户端分页导航
- 打造通用ASP.NET数据分页控件
- 公布本人自编的asp.net的分页控件
- 用DataList控件和ObjectDataSource在ASP.NET 2.0中实现高效能数据分页
- 打造一个通用ASP.NET数据分页控件
- 打造一个通用ASP.NET数据分页控件
- 创建用于ASP.NET的分页程序控件
- 创建用于 ASP.NET 的分页程序控件
- 创建用于 ASP.NET 的分页程序控件
- 使用 ASP.NET Atlas PageNavigator控件实现客户端分页导航
- Wap页面使用asp.net中移动控件List分页
- 公布本人自编的asp.net的分页控件
- [转] 动态加载Asp.net分页控件
- [参考]一个ASP.Net的DataGrid分页控件,在Oracle数据库下,每次只取当前页的数据,不使用存储过程
- WebPager For ASP.NET (基于ASP.NET的数据分页控件)