正文  电脑教程 > 服务器教程 >

MvcPager分页控件使用要点

初学MVC,做了个单页面应用,需要显示多个分页,并无刷新更新。 找到了MvcPager控件,非常好用,在使用ajax过程中遇到很多问题。慢慢调试和杨老...

初学MVC,做了个单页面应用,需要显示多个分页,并无刷新更新。

找到了MvcPager控件,非常好用,在使用ajax过程中遇到很多问题。慢慢调试和杨老师(MvcPaegr作者)请教,总于都解决了。

首先NuGet包添加上。搜索MvcPager可以找到。

控制器端必须引用

using Webdiyer.WebControls.Mvc;

后端就不多记录了,看下官方Demo差不多都理解了,主要记录下前端。

  <div>
    @Ajax.Pager(Model, new PagerOptions
  {
    ShowFirstLast = false,//显示第一页按钮
    ShowPrevNext = false,//显示最后一页按钮
    NumericPagerItemCount = 5,//最多显示页码数
    PageIndexParameterName = "page",//传递给后端的分页参数,如果同页有多个分页,这个参数必须不同
    Id = "callajax",//分页控件的ID,给内容修改后需要刷新页面使用。
    ContainerTagName = "ul",
    CssClass = "pagination",
    CurrentPagerItemTemplate = "<li class="active"><a href="#">{0}</a></li>",
    DisabledPagerItemTemplate = "<li class="disabled"><a>{0}</a></li>",
    PagerItemTemplate = "<li>{0}</li>"
  },
  new MvcAjaxOptions { UpdateTargetId = "calllogpage",EnableHistorySupport = false })
  </div>

然后在需要执行后刷新分页控件的地方加入,如果添加或者删除后执行

Webdiyer.MvcPagers.getById("callajax").ajaxReload();//这里面的ID是分页控件指定的ID

重要。使用上面的方法需要在MvcPager.js的jQuery插件中增加一个方法

ajaxReload:function(){
    var context = this;
    context.allowReload = true;
    context.allowCache=false;
    var index = context.__getPageIndex(context.pageIndexName);
    context.__ajax(index===0?1:index, { type: this.httpMethod, data: [] });
  },

重要,将MvcPager.js修改后就不能使用MvcPager的JS脚本注册方法了。

直接引用MvcPager.js就行了。