MVC中用Jpaginate分页 So easy!(兼容ie家族)

 

看过几款分页插件,觉得Jpaginate比较简约,样式也比较容易的定制,而且体验也比较好,支持鼠标滑动效果。先上效果图:

整个过程很简单,只需要3步

一、引入相关样式和脚本:

1.MVC4中,用了Bundles,你可以把同一个类型多个样式或者脚本的捆绑在一起。调用的时候更加简洁,便于管理。这样还可以减少服务器请求,拥有缓存功能等好处。

在App_Start文件夹中的BundleConfig.cs中写入:

  1. //分页脚本
  2. bundles.Add(new ScriptBundle("~/bundles/jPaginate").Include("~/Content/jPaginate/jquery.paginate.js"));
  3. //分页样式
  4. bundles.Add(new StyleBundle("~/bundles/jPaginateCss").Include("~/Content/jPaginate/css/style.css"));

黄色mark的部分是自己取得名字。include中才是真正的资源地址。

早_Layout.cshtml中引用:

  1. @Styles.Render("~/bundles/jPaginateCss")
  2. @Scripts.Render("~/bundles/jquery")
  3. @Scripts.Render("~/bundles/jPaginate")

2.在MVC3中,那就直接在_Layout.cshtml中引入即可.

  1. <link href="../../Content/jPaginate/css/style.css" rel="stylesheet" type="text/css" />
    <script src="../../Content/jPaginate/jquery.paginate.js" type="text/javascript"></script>

二、分页原理

分页插件都一般都需要总页数显示页数。还有当前页数每页显示数目等,这些必须是根据具体的情况,后台去设置。在MVC中,我们设置好一个ViewModel,以Json返回去就行了。显示的页面用partView,这样配合ajax 实现异步翻页。

  1. /// <summary>
  2. /// 每页显示的条数
  3. /// </summary>
  4. private const int DefaultTopicPageCount = 20;
  5.  
  6. /// <summary>
  7. /// 显示出来的页数
  8. /// </summary>
  9. private const int DefaultDisplayCount = 8;
  10.  
  11. /// <summary>
  12. /// 首页话题列表
  13. /// </summary>
  14. /// <returns></returns>
  15. public ActionResult TopicList(int? pageIndex=1)
  16. {
  17. if (pageIndex == 0 || pageIndex == null)
  18. pageIndex = 1;
  19.  
  20. var tops = LoveDb.TopicAll().Where(n => n.IsValid).OrderByDescending(n => n.UpDataTime);
  21.  
  22. var totalcount = tops.Count();// 所有topic的数目
  23. var startIndex = (pageIndex - 1) * DefaultTopicPageCount; //每页起始话题数
  24. var endIndex = (pageIndex) * DefaultTopicPageCount - 1;//每页结束话题数
  25. if (endIndex >= totalcount) endIndex = totalcount;
  26.  
  27. var seletops = tops.Where((t, i) => i >= startIndex && i <= endIndex).ToList();//选出在起始数和结束数之间的topic 也就是当前页要显示的topic
  28.  
  29. foreach (var topic in seletops.Where(topic => topic.Title.Length>18))
  30. {
  31. topic.Title = topic.Title.Substring(0, 15) + "...";
  32. }
  33. return PartialView(seletops);
  34. }
  35.  
  36. /// <summary>
  37. /// 分页 抛给前台的数据
  38. /// </summary>
  39. /// <returns></returns>
  40. public JsonResult TopicPager()
  41. {
  42. //需要计算出总的页数
  43. var count= LoveDb.TopicAll().Count(n => n.IsValid);
  44. var page = (int) Math.Ceiling((double)count / DefaultTopicPageCount);
  45. var pager = new Pager
  46. {
  47. DisplayCount = page > DefaultDisplayCount ? DefaultDisplayCount : page,//显示页数调整
  48. PageCount = page,
  49. ItemCount = DefaultTopicPageCount,//这个可以忽略
  50. StarPage = 1
  51. };
  52. return Json(pager);
  53. }

三、前端分页实现

  1. <script type="text/javascript">
  2. $(function () {
  3. $.post("/Interactive/TopicPager", function (data) {
  4. $("#pager").paginate({
  5. count: data.PageCount,//总页数
  6. start: data.StarPage,//起始页
  7. display: data.DisplayCount,// 显示的页数
  8. border: true,
  9. border_color: '#fff',//自己调整样式。
  10. text_color: 'black',
  11. background_color: 'none',
  12. border_hover_color: '#ccc',
  13. text_hover_color: '#000',
  14. background_hover_color: '#fff',
  15. images: false,
  16. mouse: 'press',
  17. onChange: function (page) {//翻页
  18. $.post("/Interactive/TopicList", { pageIndex: page }, function (content) {
  19. $("#topiclist").html(content);
  20. });
  21. }
  22. });
  23. });
  24. })
  25. </script>

这样就就ok了。

其他样式:

下载地址: http://tympanus.net/codrops/2009/11/17/jpaginate-a-fancy-jquery-pagination-plugin/

如果对你有帮助,就请支持一下~   :)

 
 
分类: C#/.NetJqueryMVC
标签: 分页

MVC中用Jpaginate分页的更多相关文章

  1. MVC中用Jpaginate分页 So easy!(兼容ie家族)

    看过几款分页插件,觉得Jpaginate比较简约,样式也比较容易的定制,而且体验也比较好,支持鼠标滑动效果.先上效果图: 整个过程很简单,只需要3步 一.引入相关样式和脚本: 1.MVC4中,用了Bu ...

  2. ASP.NET MVC利用PagedList分页(二)PagedList+Ajax+JsRender

    (原文) 昨天在ASP.NET MVC利用PagedList分页(一)的 最后一节提到,一个好的用户体验绝对不可能是点击下一页后刷新页面,所以今天来说说利用Ajax+PagedList实现无刷新(个人 ...

  3. asp.net mvc多条件+分页查询解决方案

    开发环境vs2010 css:bootstrap js:jquery bootstrap paginator 原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了 ...

  4. 在Asp.Net MVC中用Ajax回调后台方法

    在Asp.Net MVC中用Ajax回调后台方法基本格式: var operData = ...; //传递的参数(action中定义的) var type = ...; //传递的参数(action ...

  5. MVC无刷新分页

    MVC无刷新分页(即局部刷新,带搜索,页数选择,排序功能)   我查看了很多网站,大部分评论分页都是局部刷新的,可大部分电商商品展示分页都是有刷新页面的,于是我便做了一个商品展示无刷新分页的例子.接下 ...

  6. 重构MVC多条件分页解决方案

    重构MVC多条件+分页解决方案 为支持MVC的验证,无刷新查询,EF,以及让代码可读性更强一点,所以就重构了下原来的解决方案. 这里就简单讲下使用方法吧: Model: 继承PagerBase:  S ...

  7. ORACLE中用rownum分页并排序的SQL语句

    ORACLE中用rownum分页并排序的SQL语句 以前分页习惯用这样的SQL语句: select * from (selectt.*,rownum row_num frommytable t ord ...

  8. ASP.NET MVC利用PagedList分页(一)

    前几天看见博客园上有人写ASP.NET MVC的分页思想,这让我不禁想起了PagedList.PagedList是NuGet上提供的一个分页的类库,能对任何IEnumerable<T>进行 ...

  9. 【MVC】bootstrap-paginator 分页

    [MVC]bootstrap-paginator 分页http://www.cnblogs.com/stoneniqiu/p/4000041.htmlhttp://www.cnblogs.com/Le ...

随机推荐

  1. 用java字节码解释i++和++i(转)

    这几天抽着一些时间,把Java的class文件结构研究了一下,再后来就想起了这个令人厌烦的问题,想从字节码指令的角度看看,java到底是怎么处理这个的 先看一段java代码 package bishi ...

  2. Hadoop-1.1.2、HBase-0.94.7完全分布式集群结构

    爱的技术可以应用到实际生活生产,做艺术向往的东西不腻和音乐. 现将前期手里面的一个项目做一个大致的总结,与大家一起分享.交流.进步. 项目如今正在线上执行,项目名--基于Hadoop的数据分析综合管理 ...

  3. javascript系列之DOM(一)

    原文:javascript系列之DOM(一) DOM(document object moudle),文档对象模型.它是一个中立于语言的应用程序接口(API),允许程序访问并修改文档的结构,内容和样式 ...

  4. JS如何判断包括IE11在内的IE浏览器

    原文:JS如何判断包括IE11在内的IE浏览器 今天碰到一个奇怪的问题,有一个页面,想指定用IE浏览器打开,在VS开发环境没有问题,但部署到服务器上,即使是用IE打开页面,还是提示"仅支持I ...

  5. iOS根据获取的月和日星座名称

    /** * 依据月和日的下标获取星座名 * * @param monthIndex 月的下标 * @param dayIndex 日的下标 * * @return 星座名 */ - (NSString ...

  6. 【Swift】沙盒缓存

    本地sandbox缓存目录     沙盒の 主目录: po NSHomeDirectory()   /Users/SpongeBob/Library/Developer/CoreSimulator/D ...

  7. 从头开始学JavaScript(一)——基础中的基础

    概要:javascript的组成. 各个组成部分的作用 . 一.javascript的组成   javascript   ECMAScript(核心) DOM(文档对象模型) BOM(浏览器对象模型) ...

  8. JavaScript Date对象介绍

    原文:JavaScript Date对象介绍 Date 日期和时间对象 1. 介绍 Date对象,是操作日期和时间的对象.Date对象对日期和时间的操作只能通过方法. 2. 构造函数 2.1 new ...

  9. springmvc继承activemq(原创)

    1.加入jar包 我项目是用maven构建的,所以这里就给大家贴一下配置了,具体jar大家可以参看下Activemq分类中的文章 <project xmlns="http://mave ...

  10. java设计模式之五原型模式(Prototype)

    原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制.克隆,产生一个和原对象类似的新对象.本小结会通过对象的复制,进行讲解.在Java中 ...