初学MVC,做了个单页面应用,需要显示多个分页,并无刷新更新。
找到了MvcPager控件,非常好用,在使用ajax过程中遇到很多问题。慢慢调试和杨老师(MvcPaegr作者)请教,总于都解决了。
首先NuGet包添加上。搜索MvcPager可以找到。
控制器端必须引用
using Webdiyer.WebControls.Mvc;
后端就不多记录了,看下官方Demo差不多都理解了,主要记录下前端。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
< 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 >
|
然后在需要执行后刷新分页控件的地方加入,如果添加或者删除后执行
1
|
Webdiyer.MvcPagers.getById( "callajax" ).ajaxReload(); //这里面的ID是分页控件指定的ID
|
重要。使用上面的方法需要在MvcPager.js的jQuery插件中增加一个方法
1
2
3
4
5
6
7
|
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就行了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。