Asp.Net Mvc4分页,扩展HtmlHelper类
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类相关推荐
- ASP.NET MVC 扩展HtmlHelper类为 js ,css 资源文件添加版本号
写在前面 在项目部署当中会需要更新 css 文件或 js 等资源文件,为了避免由于浏览器缓存的原因无法加载新的 css 或 js ,一般的做法是在资源文件的后面加上一个版本号来解决,这样浏览器就会去服 ...
- [ASP.NET MVC]通过对HtmlHelper扩展简化“列表控件”的绑定
在众多表单元素中,有一类<select>元素用于绑定一组预定义列表.传统的ASP.NET Web Form中,它对应着一组重要的控件类型,即ListControl,我们经常用到DropDo ...
- 13个 ASP.NET MVC 的扩展
ASP.NET MVC设计的主要原则之一是可扩展性.处理管线(processing pipeline)上的所有(或大多数)东西都是可替换的.因此,如果您不喜欢ASP.NET MVC所使用的约定(或缺乏 ...
- .ne中的控制器循环出来的数据如何显示在视图上_Web程序设计-ASP.NET MVC4数据库操作实例...
ASP.NET MVC4数据库操作实例 之前文章介绍了MVC4与Pure框架结合进行的网页设计过程中如何定义控制器.方法.模型.视图等.并使用实例进行了简单说明.本文将在此基础上进一步说明如何使用MV ...
- Asp.Net MVC4入门指南(3):添加一个视图
在本节中,您需要修改HelloWorldController类,从而使用视图模板文件,干净优雅的封装生成返回到客户端浏览器HTML的过程. 您将创建一个视图模板文件,其中使用了ASP.NET MVC ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单...
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单 原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用...
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用 原文:构建ASP.NET MVC4+EF5+EasyUI+Un ...
- ASP.NET MVC4 IN ACTION学习笔记-第二波
ASPNET MVC4 视图基础(Views fundamentals) --忽然发现我的时间不够了,但是我还是完成了 原著:ASP.NET MVC 4 IN ACTION 本人能力有限,尽量将书中的 ...
- Asp.net 一般处理程序+扩展
在上一篇博客中,提到一般处理程序真的不一般.这篇博客主要是给大家解惑.由于最近在做项目的过程中,用到了很多的一般处理程序,相信你也一定用到过,但是你真的了解它吗? 介绍: 一般处理程序的一般是相对于a ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(12)-系统日志和异常的处理②...
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(12)-系统日志和异常的处理② 上一讲我们做了日志与异常的结果显示列表,这一节我们讲要把他应用系统中来. ...
最新文章
- ML之xgboost:利用xgboost算法(结合sklearn)训练mushroom蘑菇数据集(22+1,6513+1611)来预测蘑菇是否毒性(二分类预测)
- 全球及中国TEA-月桂酰肌氨酸盐市场调研与竞争调查分析报告2022版
- 获取 Windows 窗体 DataGridView 控件中选定的单元格、行和列
- 博士考试考完了,庆祝一下
- win10浏览器html设置字体大小设置,edge字体大小设置?win10 edge浏览器字体设置技巧...
- 基于LSTM、KNN等模型的平安银行股价预测对比研究(python)
- 项目中常用之单例模式
- 国内著名声学期刊简介
- 有趣的隐式图模型——USACO CONTEST FEB07 白银莲花池
- 教你怎么快速读出python numpy中给定的array的shape
- win10以太网未识别的网络的解决方法
- html页面内容分页【转】
- 二手车电商风波:改革路上,请给予一定的容错空间!
- AAAI2022推荐系统论文集锦
- QQ号、微信号java正则表达式
- 广州去香港的N种方法
- Hadoop中的MapReduce框架原理、数据清洗(ETL)、MapReduce开发总结、常见错误及解决方案
- 男士最佳衣着选择搭配
- ESP8266-Arduino编程实例-TM1637-驱动4位7段数码管
- 读取mstsc历史密码
热门文章
- 最近病毒缠身,帖两个病毒的解决方法.
- Bom Shanka Machines psymmetrix Delay for Mac(音频延迟效果器)
- 装双系统?不需要 教你在iMac上流畅使用Windows
- EasyRecovery---U盘数据恢复技巧
- Django 1.8.2 文档 1
- C++ template 学习归纳总结4
- Mybaits 3.2.6设计的一个缺陷,欢迎拍砖交流
- 互联网盈利模式研习笔记之一:流量变现
- android studio 混淆方法
- Shared File System Master Slave 全配置以及测试