0. 没有找到一款中意的分页插件,又不想使用现成的(丑到爆),所以自己动手造一个吧

先看下效果(其实也不咋滴...):

  有点另类,分页直接是在后台拼接好html,然后发送到前台的:

  1. 分页容器:

<div class="pagination"><ul>//************分页HTML*********</ul>
</div>

2.  PagerHelper:

namespace ZYN.BLOG.WebHelper
{public class PagerHelper{/// <summary>/// 生成分页Html数据/// </summary>/// <param name="currentPage">当前页</param>/// <param name="pageSize">页容量</param>/// <param name="totalCount">数据总条数</param>/// <returns>pagerHtmlString</returns>public static string GeneratePagerString(int currentPage, int pageSize, int totalCount){var redirectToUrl = HttpContext.Current.Request.Url.AbsolutePath;pageSize = pageSize <= 0 ? 4 : pageSize;//1.0 总页数int totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1);//2.0 分页条的容量int pageBarSize = 6;//默认一个分页条显示6个页码。分页条容量 //3.0 分页条的个数 totalPages个页数按 pageBarSize = 6  可以 分为多少个分页条int pageBarNum = (totalPages + pageBarSize - 1) / pageBarSize; // totalPages=13时,也就是把13个页码分成3个分页条//判断当前页currentPage坐落在第几个分页条内int position = (currentPage - 1) / pageBarSize;  //根据分页条的序号,计算出该分页条的第一个页码start和最后一个页码endint start = position * pageBarSize + 1;//如果是最后一个分页条,则需判断它实际的页条容量;否则页条容量就是pageBarSizeint curBarCapacity = pageBarSize;if (position == pageBarNum - 1){curBarCapacity = totalPages - (pageBarNum - 1) * pageBarSize;}StringBuilder pagerHtmlString = new StringBuilder();StringBuilder endHtmlString = new StringBuilder();//处理首页pagerHtmlString.AppendFormat("<li id='start-page'><a href='{0}?pageIndex={1}&pageSize={2}'>首页</a></li> ", redirectToUrl, 1, pageSize);//处理上一页:如果当前页不是第一页,就加上上一页if (currentPage > 1){pagerHtmlString.AppendFormat("<li class='prev-page'><a href='{0}?pageIndex={1}&pageSize={2}'>上一页</a></li> ", redirectToUrl, currentPage - 1, pageSize);}//假如起始位置start为1  7  13for (int i = 0; i < curBarCapacity; i++)  //curBarCapacity=3  i=0 1 2
            {int j = start + i; //要显示的页码当量值if (j == currentPage){//对当前页的处理:class=activepagerHtmlString.AppendFormat("<li class='active show-page'><span>{0}</span></li> ", currentPage);if (curBarCapacity == pageBarSize){//不处理最后一个分页条页if (currentPage == start + pageBarSize - 1){if (currentPage + 1 < totalPages){endHtmlString.AppendFormat("<li class='show-page'><a href='{0}?pageIndex={1}&pageSize={2}'>{3}</a></li>", redirectToUrl, currentPage + 1, pageSize, currentPage + 1);}endHtmlString.Append("<li class='show-page'><span>...</span></li>");endHtmlString.AppendFormat("<li class='show-page'><a href='{0}?pageIndex={1}&pageSize={2}'>{3}</a></li>", redirectToUrl, totalPages, pageSize, totalPages);}}}else{pagerHtmlString.AppendFormat("<li class='show-page'><a href='{0}?pageIndex={1}&pageSize={2}'>{3}</a></li> ", redirectToUrl, j, pageSize, j);}}//省略号的处理
            pagerHtmlString.Append(endHtmlString.ToString());//处理下一页:如果当前页不是最后一页,则加上下一页。也即中间的所有分页条都显示下一页if (currentPage != totalPages){pagerHtmlString.AppendFormat("<li class='next-page'><a href='{0}?pageIndex={1}&pageSize={2}'>下一页</a></li> ", redirectToUrl, currentPage + 1, pageSize);}//处理末页pagerHtmlString.AppendFormat("<li id='end-page'><a href='{0}?pageIndex={1}&pageSize={2}'>末页</a></li> ", redirectToUrl, totalPages, pageSize);pagerHtmlString.AppendFormat("<li id='total-page'><span>共-{0}-页</span></li>", totalPages);pagerHtmlString.Append(" ");return pagerHtmlString.ToString();}}
}

3 渲染出来的分页HTML是这样的:

<div class="pagination"><ul>    <li id="start-page"><a href="/Home/WrapArtList/0?pageIndex=1&amp;pageSize=6">首页</a></li>     <li class="active show-page"><span>1</span></li>     <li class="show-page"><a href="/Home/WrapArtList/0?pageIndex=2&amp;pageSize=6">2</a></li>     <li class="show-page"><a href="/Home/WrapArtList/0?pageIndex=3&amp;pageSize=6">3</a></li>     <li class="show-page"><a href="/Home/WrapArtList/0?pageIndex=4&amp;pageSize=6">4</a></li>     <li class="show-page"><a href="/Home/WrapArtList/0?pageIndex=5&amp;pageSize=6">5</a></li>     <li class="next-page"><a href="/Home/WrapArtList/0?pageIndex=2&amp;pageSize=6">下一页</a></li>    <li id="end-page"><a href="/Home/WrapArtList/0?pageIndex=5&amp;pageSize=6">末页</a></li>     <li id="total-page"><span>共-5-页</span></li>    </ul>
</div>

4. CSS样式:

/* 分页样式pagination ====== */
.pagination { /* div pagination*/margin: 0;padding: 20px;text-align: center;font-size: 12px;display: block;
}.pagination ul {display: inline-block;*display: inline;*zoom: 1;margin-left: 0;margin-bottom: 0;padding: 0;}.pagination ul > li {display: inline;}.pagination ul > li > a,.pagination ul > li > span {margin: 0 2px;float: left;padding: 5px 12px;background-color: #ddd;color: #666;border-radius: 2px;opacity: .88;}.pagination ul > li > a:hover,.pagination ul > li > a:focus {background-color: #bce8f1;}.pagination ul > .active > a,.pagination ul > .active > span {background-color: #45B6F7;color: #fff;}.pagination ul > .active > a,.pagination ul > .active > span {cursor: default;}.pagination ul > li > span,.pagination ul > .disabled > span,.pagination ul > .disabled > a,.pagination ul > .disabled > a:hover,.pagination ul > .disabled > a:focus {color: #999999;background-color: transparent;cursor: default;}
/* 自定义的分页pagination 结束====== */

5. 不嫌弃的话,拿去用吧...

如果有你发现了bug或有疑问、有建议的话,可以去我的小站找我:  去看看? ;

或者在这篇随笔下通知我一下,谢谢...

转载于:https://www.cnblogs.com/haust/p/5617663.html

ASP.NET MVC+Bootstrap个人博客之打造清新分页Helper(三)相关推荐

  1. navbar fixed top.css,Bootstrap个人博客给nav设置navbar-fixed-top定位后导航栏遮盖内容完美解决方案!...

    这也是我在使用Bootstrap3开发 完美解决方案一:使用两个导航占位 大致意思就是给页面设置两个导航nav一个是空的导航栏一个则是设置navbar-fixed-top的导航栏 .......... ...

  2. web图书销售管理系统_开源ASP.NET MVC+Bootstrap的仓库管理系统

    随着计算机技术的快速发展,当前很多企业的仓库资料数据都已经采用信息系统进行管理,它们有些使用功能强大的ERP系统.有些使用专门的仓库管理系统对数据进行管理. 那究竟什么是仓库管理系统?仓库管理系统又有 ...

  3. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(三)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(三) 转载于:https://github.com/Meowv/Blog 上一篇完成了博客的主题切换,菜单和 ...

  4. 基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(三)

    基于 abp vNext 和 .NET Core 开发博客项目 - 定时任务最佳实战(三) 转载于:https://github.com/Meowv/Blog 本篇继续围绕抓取完成后的操作做一个提醒. ...

  5. 【博客项目】—数据分页(十)

    [博客项目]-数据分页(十)

  6. 如何建设一个属于自己的网站(博客),打造个人品牌?

    如何建设一个自己的网站(博客) 如果你有创建一个自己的网站这个冲动,要搭建一个属于自己的网络空间平台,但是苦于不知道从何下手,或者因为不知道水有多深,又或者觉得那是做IT,搞程序的人的专利,望而却步, ...

  7. WordPress博客主题大气清新的绿色主题MRuu

    今天给大家再带来一款很清新,很环保的绿色 wordpress博客主题-MRuu,它里面大气的图片插图和背景布局让人眼前一亮,大家可下载体验下. 主题名称:[MRuuSkin 1.0]绿色版 制作时间: ...

  8. ASP.NET MVC+Bootstrap 实现短信验证

    短信验证大家都已经很熟悉了,基本上每天都在接触手机短信的验证码,比如某宝,某东购物,网站注册,网上银行等等,都要验证我们的手机号码真实性.这样做有什么好处呢. 以前咱们在做网站的时候,为了提高用户注册 ...

  9. ASP.NET MVC Bootstrap极速开发框架

    前言 每次新开发项目都要从头开始设计?有木有一个通用的快速开发框架?并且得是ASP.NET MVC  And Bootstrap?数据库不要手工创建?框架对未来业务支持的扩展性好?这么简单的功能还需要 ...

最新文章

  1. 【青少年编程】【三级】换装
  2. ‘str‘ object has no attribute ‘get‘ 错误解决方案
  3. 【探索PowerShell 】【三】PowerShell下使用Aliases
  4. C++ class实现Huffman树(完整代码)
  5. java listener 实现机制_Java监听器机制ServletContextListener实现执行某方法函数
  6. e-006 matlab,基于MATLAB进行潮流计算
  7. 对vue.config.js中的代理服务器的理解
  8. Unity为游戏添加背景音乐
  9. 《C++ Primer 5th》知识点总结练习题解
  10. 笔记本电脑系统迁移0xc0000225
  11. Python数据分析与挖掘实战学习12
  12. django发送ajax请求 获取 b站视频封面图片
  13. 这18个网站能让你的页面背景炫酷起来
  14. python做cae库,基于Python的CAE自动后处理开发
  15. 小孔成像总结_初中物理解题技巧+方法总结,非常实用,初二初三都要看!
  16. YOLO系列文章汇总
  17. 排序算法之一 冒泡排序(Bubble Sort)
  18. chage command
  19. powershell批量修改AD域用户UPN后缀
  20. 卡巴斯基和趋势科技安全产品的DLL劫持漏洞

热门文章

  1. 中文版-He Knows My Name(他知道我的名字)-祂认得我-陈熙(音乐河4)
  2. ssh远程执行多个命令
  3. 保持dropdownlist选中值
  4. 如何学习linux编程
  5. Gridview导出到Excel,Gridview中的各类控件,Gridview中删除记录的处理
  6. 如何实现立体的DataGrid和具有Windows效果的图片按钮
  7. DataRow的序列化问题
  8. Windows客户端C/C++编程规范“建议”——风格
  9. Ubuntu14.04下配置OpenGL及测试代码
  10. 协方差矩阵介绍及C++/OpenCV/Eigen的三种实现