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

 

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

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

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

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

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

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

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

早_Layout.cshtml中引用:

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

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

 <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 实现异步翻页。

        /// <summary>
/// 每页显示的条数
/// </summary>
private const int DefaultTopicPageCount = 20; /// <summary>
/// 显示出来的页数
/// </summary>
private const int DefaultDisplayCount = 8; /// <summary>
/// 首页话题列表
/// </summary>
/// <returns></returns>
public ActionResult TopicList(int? pageIndex=1)
{
if (pageIndex == 0 || pageIndex == null)
pageIndex = 1; var tops = LoveDb.TopicAll().Where(n => n.IsValid).OrderByDescending(n => n.UpDataTime); var totalcount = tops.Count();// 所有topic的数目
var startIndex = (pageIndex - 1) * DefaultTopicPageCount; //每页起始话题数
var endIndex = (pageIndex) * DefaultTopicPageCount - 1;//每页结束话题数
if (endIndex >= totalcount) endIndex = totalcount; var seletops = tops.Where((t, i) => i >= startIndex && i <= endIndex).ToList();//选出在起始数和结束数之间的topic 也就是当前页要显示的topic foreach (var topic in seletops.Where(topic => topic.Title.Length>18))
{
topic.Title = topic.Title.Substring(0, 15) + "...";
}
return PartialView(seletops);
} /// <summary>
/// 分页 抛给前台的数据
/// </summary>
/// <returns></returns>
public JsonResult TopicPager()
{
//需要计算出总的页数
var count= LoveDb.TopicAll().Count(n => n.IsValid);
var page = (int) Math.Ceiling((double)count / DefaultTopicPageCount);
var pager = new Pager
{
DisplayCount = page > DefaultDisplayCount ? DefaultDisplayCount : page,//显示页数调整
PageCount = page,
ItemCount = DefaultTopicPageCount,//这个可以忽略
StarPage = 1
};
return Json(pager);
}

三、前端分页实现

<script type="text/javascript">
$(function () {
$.post("/Interactive/TopicPager", function (data) {
$("#pager").paginate({
count: data.PageCount,//总页数
start: data.StarPage,//起始页
display: data.DisplayCount,// 显示的页数
border: true,
border_color: '#fff',//自己调整样式。
text_color: 'black',
background_color: 'none',
border_hover_color: '#ccc',
text_hover_color: '#000',
background_hover_color: '#fff',
images: false,
mouse: 'press',
onChange: function (page) {//翻页
$.post("/Interactive/TopicList", { pageIndex: page }, function (content) {
$("#topiclist").html(content);
});
}
});
});
})
</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. 《C++ Primer Plus》学习笔记10

    <C++ Primer Plus>学习笔记10 <<<<<<<<<<<<<<<<<&l ...

  2. 初识Java——(Java学习笔记一)

    冯诺依曼体系结构   JAVA核心优势:跨平台---通过JVM(java虚拟机)来实现   JVM:Java虚拟机的一种规范     标示符:只能以下划线.美元符号($).字母.数字组成,不能以数字开 ...

  3. 采纳ajax提交POST样本数据

    问题叙述性说明 我们会form该input和checkbox提交给异步数据phpserver.处理后的回. 提交之后显示的位置: 难点分析 採用from表单的onsubmit属性阻止表单的提交 < ...

  4. linux_曝出重大bash安全漏洞及修复方法

    日前Linux官方内置Bash中新发现一个非常严重安全漏洞(漏洞参考https://access.redhat.com/security/cve/CVE-2014-6271  ),黑客可以利用该Bas ...

  5. java OutOfMorryError (replaceAll)

    最近在使用string类中的replaceAll函数时碰到这个错误,由于string长度比较长,文本文档9M多,可以增加jvm的内存大小解决. 下面是一篇对OutOfMorryError错误的一些处理 ...

  6. PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例

    原文:PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例 <!--小幅的坐标转换点位程序--> <!DOCTYPE html> <html&g ...

  7. 剑指XX(游戏10) - 走正步工厂一个安静的农场游戏的代码

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2lsYW5ncXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  8. NodeJS,我对“高、高、非”的一些看法

    ·众所周知 NodeJS三大神器"事件驱动,V8,回调函数". ·事件驱动,故名思议:等快递和收快递区别.NodeJS将原先大牛们掌握的神神秘秘的EPOLL走向大众化,这点是最大的 ...

  9. 关于Cassandra与Thrift在int/text/varint上的暧昧

    近期简单写了一个基于Cassandra/C++的日志缓存,虽然是Nosql,但是在实际应用中,还是期望能有部分的临时CQL统计 或+-*/可以支持 所以在针对部分字段入库时,选择了作为整形录入,于是麻 ...

  10. RethinkDB创始人教你如何打造一个伟大的互联网产品

    关于作者 我叫Slava Akhmechet,本人是 RethinkDB 的创始人之一,RethinkDB是开源,分布式数据库,旨在帮助开发人员与运营商在打造实时应用时处理无结构数据 如何打造一个伟大 ...