C# MVC的一种高效分页的html方法
来源:互联网 发布:python exe反编译工具 编辑:程序博客网 时间:2024/06/07 13:43
首先创建一个html的扩展方法,这个方法是万能的,可以直接拿到您的项目中使用:
//主要就是输出分页的超级链接的标签 //自定义分页Helper扩展 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) { //if (currentPage != 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); } else { // output.Append("<span class='pageLink'>上一页</span>"); } 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.Append(string.Format("[{0}]", currentPage)); 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); } else { //output.Append("<span class='pageLink'>下一页</span>"); } output.Append(" "); if (currentPage != totalPages) { output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1}&pageSize={2}'>末页</a> ", redirectTo, totalPages, pageSize); } output.Append(" "); } output.AppendFormat("第{0}页 / 共{1}页", currentPage, totalPages);//这个统计加不加都行 return new HtmlString(output.ToString()); }
如果不知道什么是扩展方法,以及不知道扩展方法如何使用,可以看我的另外一篇文章,
http://blog.csdn.net/only_yu_yy/article/details/78509091
然后在视图中调用这个方法
<div> @Html.ShowPageNavigate((int)ViewData["pageIndex"], (int)ViewData["pageSize"], (int)ViewData["totalCount"])</div>
最后一步,在控制器中加入如下代码:
DataModelContainer dbContainer = new DataModelContainer(); // GET: User public ActionResult Index(int pageIndex = 1,int pageSize=2) { ViewData["pageIndex"] = pageIndex; ViewData["pageSize"] = pageSize; ViewData["totalCount"] = dbContainer.User.Count(); ViewData.Model = dbContainer.User.OrderBy(u=>u.Id).Skip(pageSize*(pageIndex-1)).Take(pageSize).AsEnumerable(); return View(); }
这就可以轻松实现分页效果了。
阅读全文
0 0
- C# MVC的一种高效分页的html方法
- 比较高效的一种分页方法
- 比较高效的一种分页方法
- sqlserver分页比较高效的一种方法
- 一种高效的分页机制
- 一种高效的javabea分页For SqlServer
- 一种高效的javabea分页For SqlServer
- 一种高效的跨进程MVC架构
- c# 高效的分页查询
- 高效读入数据的一种方法sasfile
- 位序转字符串的一种高效方法
- 设计高效SQL: 一种视觉的方法
- 一种高效的平均值滤波方法
- 计算幂的一种高效方法
- Android一种高效压缩图片的方法
- 一种高效的 vector 四则运算处理方法
- 一种高效的 vector 四则运算处理方法
- Android一种高效压缩图片的方法
- 软件工程(C编码实践篇)学习总结
- (进制转化)
- 徐登沿的第五个程序(单精度实型和双精度实型的有效位数)
- XRecycleView的一系列事件
- 使用Eclipse的几个必须掌握的快捷方式
- C# MVC的一种高效分页的html方法
- 集成学习
- 手把手实现JSP +SQLServer2012实现站点界面成绩查询
- python高级技能
- 输出一个整数序列中与指定数字相同的数的个数
- C和指针之判断参数在关键字字符串列表中是否匹配
- 相同数相乘
- STL模板库
- 数据结构—开散列哈希算法