1、扩展HtmlHelper类方法ShowPageNavigate

public static HtmlString ShowPageNavigate(this HtmlHelper htmlHelper, int currentPage, int pageSize, int totalCount){var redirectTo = htmlHelper.ViewContext.RequestContext.HttpContext.Request.Url.AbsolutePath;pageSize = pageSize == 0 ? 3 : pageSize;var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1); //总页数var output = new StringBuilder();if (totalPages > 1){                output.AppendFormat("<a class='pageLink' href='{0}?pageIndex=1&pageSize={1}'>首页</a> ", redirectTo, pageSize);                if (currentPage > 1){//处理上一页的连接output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>上一页</a> ", redirectTo, currentPage - 1, pageSize);}                output.Append(" ");int currint = 5;for (int i = 0; i <= 10; i++){//一共最多显示10个页码,前面5个,后面5个if ((currentPage + i - currint) >= 1 && (currentPage + i - currint) <= totalPages){if (currint == i){//当前页处理                            output.AppendFormat("<a class='cpb' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage, pageSize, currentPage);}else{//一般页处理output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage + i - currint, pageSize, currentPage + i - currint);}}output.Append(" ");}if (currentPage < totalPages){//处理下一页的链接output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>下一页</a> ", redirectTo, currentPage + 1, pageSize);}output.Append(" ");if (currentPage != totalPages){output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>末页</a> ", redirectTo, totalPages, pageSize);}output.Append(" ");}output.AppendFormat("<label>第{0}页 / 共{1}页</label>", currentPage, totalPages);//这个统计加不加都行return new HtmlString(output.ToString());}

2、添加公共类PagerInfo,PageQuery

public class PagerInfo{public int RecordCount { get; set; }public int CurrentPageIndex { get; set; }public int PageSize { get; set; }}public class PagerQuery<TPager, TEntityList>{public PagerQuery(TPager pager, TEntityList entityList){this.Pager = pager;this.EntityList = entityList;}public TPager Pager { get; set; }public TEntityList EntityList { get; set; }}

3、然后在Controller里面添加Action

public ActionResult Index(int? pageSize,int? pageIndex){int pageIndex1 = pageIndex ?? 1;int pageSize1 = pageSize ?? 5;int count=0;//从数据库在取得数据,并返回总记录数var temp = newsSer.LoadPageEntities(c => true, c => c.id, false, pageSize1, pageIndex1, out count);PagerInfo pager = new PagerInfo();pager.CurrentPageIndex = pageIndex1;pager.PageSize = pageSize1;pager.RecordCount = count;PagerQuery<PagerInfo,IQueryable<news>> query = new PagerQuery<PagerInfo,IQueryable<news>>(pager,temp);return View(query);}

4、View里的部分代码

<tbody>@foreach (var item in Model.EntityList){ <tr><td class="checkBox"><input name="ids[]" type="checkbox" value="" /></td><td>@item.author</td><td>@item.title</td><td>@item.ctime</td><td>@Html.ActionLink("编辑", "Edit", new { id = item.id }) |@Html.ActionLink("删除", "Delete", new { id = item.id })</td></tr>}@*分页*@<tr class=""><td colspan="5" align="center" class="paginator"><span>@Html.ShowPageNavigate(Model.Pager.CurrentPageIndex, Model.Pager.PageSize, Model.Pager.RecordCount)</span></td></tr></tbody>

5、添加一些样式

.paginator{font: 12px Arial, Helvetica, sans-serif;padding: 10px 20px 10px 0;margin: 0px auto;}.paginator a{border: solid 1px #ccc;color: #0063dc;cursor: pointer;text-decoration: none;}.paginator a:visited{padding: 1px 6px;border: solid 1px #ddd;background: #fff;text-decoration: none;}.paginator .cpb{border: 1px solid #F50;font-weight: 700;color: #F50;background-color: #ffeee5;}.paginator a:hover{border: solid 1px #F50;color: #f60;text-decoration: none;}.paginator a, .paginator a:visited, .paginator .cpb, .paginator a:hover{float: left;height: 16px;line-height: 16px;min-width: 10px;_width: 10px;margin-right: 5px;text-align: center;white-space: nowrap;font-size: 12px;font-family: Arial,SimSun;padding: 0 3px;}.paginator label{display:block;    float:left;    }

6、运行,得效果图

转载于:https://www.cnblogs.com/ChengPuYuan/p/3715412.html

Asp.Net Mvc4分页,扩展HtmlHelper类相关推荐

  1. ASP.NET MVC 扩展HtmlHelper类为 js ,css 资源文件添加版本号

    写在前面 在项目部署当中会需要更新 css 文件或 js 等资源文件,为了避免由于浏览器缓存的原因无法加载新的 css 或 js ,一般的做法是在资源文件的后面加上一个版本号来解决,这样浏览器就会去服 ...

  2. [ASP.NET MVC]通过对HtmlHelper扩展简化“列表控件”的绑定

    在众多表单元素中,有一类<select>元素用于绑定一组预定义列表.传统的ASP.NET Web Form中,它对应着一组重要的控件类型,即ListControl,我们经常用到DropDo ...

  3. 13个 ASP.NET MVC 的扩展

    ASP.NET MVC设计的主要原则之一是可扩展性.处理管线(processing pipeline)上的所有(或大多数)东西都是可替换的.因此,如果您不喜欢ASP.NET MVC所使用的约定(或缺乏 ...

  4. .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...

    ASP.NET MVC4数据库操作实例 之前文章介绍了MVC4与Pure框架结合进行的网页设计过程中如何定义控制器.方法.模型.视图等.并使用实例进行了简单说明.本文将在此基础上进一步说明如何使用MV ...

  5. Asp.Net MVC4入门指南(3):添加一个视图

    在本节中,您需要修改HelloWorldController类,从而使用视图模板文件,干净优雅的封装生成返回到客户端浏览器HTML的过程. 您将创建一个视图模板文件,其中使用了ASP.NET MVC ...

  6. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单...

    构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单 原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后 ...

  7. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用...

    构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用 原文:构建ASP.NET MVC4+EF5+EasyUI+Un ...

  8. ASP.NET MVC4 IN ACTION学习笔记-第二波

    ASPNET MVC4 视图基础(Views fundamentals) --忽然发现我的时间不够了,但是我还是完成了 原著:ASP.NET MVC 4 IN ACTION 本人能力有限,尽量将书中的 ...

  9. Asp.net 一般处理程序+扩展

    在上一篇博客中,提到一般处理程序真的不一般.这篇博客主要是给大家解惑.由于最近在做项目的过程中,用到了很多的一般处理程序,相信你也一定用到过,但是你真的了解它吗? 介绍: 一般处理程序的一般是相对于a ...

  10. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(12)-系统日志和异常的处理②...

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(12)-系统日志和异常的处理② 上一讲我们做了日志与异常的结果显示列表,这一节我们讲要把他应用系统中来. ...

最新文章

  1. ML之xgboost:利用xgboost算法(结合sklearn)训练mushroom蘑菇数据集(22+1,6513+1611)来预测蘑菇是否毒性(二分类预测)
  2. 全球及中国TEA-月桂酰肌氨酸盐市场调研与竞争调查分析报告2022版
  3. 获取 Windows 窗体 DataGridView 控件中选定的单元格、行和列
  4. 博士考试考完了,庆祝一下
  5. win10浏览器html设置字体大小设置,edge字体大小设置?win10 edge浏览器字体设置技巧...
  6. 基于LSTM、KNN等模型的平安银行股价预测对比研究(python)
  7. 项目中常用之单例模式
  8. 国内著名声学期刊简介
  9. 有趣的隐式图模型——USACO CONTEST FEB07 白银莲花池
  10. 教你怎么快速读出python numpy中给定的array的shape
  11. win10以太网未识别的网络的解决方法
  12. html页面内容分页【转】
  13. 二手车电商风波:改革路上,请给予一定的容错空间!
  14. AAAI2022推荐系统论文集锦
  15. QQ号、微信号java正则表达式
  16. 广州去香港的N种方法
  17. Hadoop中的MapReduce框架原理、数据清洗(ETL)、MapReduce开发总结、常见错误及解决方案
  18. 男士最佳衣着选择搭配
  19. ESP8266-Arduino编程实例-TM1637-驱动4位7段数码管
  20. 读取mstsc历史密码

热门文章

  1. 最近病毒缠身,帖两个病毒的解决方法.
  2. Bom Shanka Machines psymmetrix Delay for Mac(音频延迟效果器)
  3. 装双系统?不需要 教你在iMac上流畅使用Windows
  4. EasyRecovery---U盘数据恢复技巧
  5. Django 1.8.2 文档 1
  6. C++ template 学习归纳总结4
  7. Mybaits 3.2.6设计的一个缺陷,欢迎拍砖交流
  8. 互联网盈利模式研习笔记之一:流量变现
  9. android studio 混淆方法
  10. Shared File System Master Slave 全配置以及测试