初學(xué)MVC,做了個(gè)單頁(yè)面應(yīng)用,需要顯示多個(gè)分頁(yè),并無(wú)刷新更新。
找到了MvcPager控件,非常好用,在使用ajax過(guò)程中遇到很多問(wèn)題。慢慢調(diào)試和楊老師(MvcPaegr作者)請(qǐng)教,總于都解決了。
首先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,//顯示第一頁(yè)按鈕 ShowPrevNext = false,//顯示最后一頁(yè)按鈕 NumericPagerItemCount = 5,//最多顯示頁(yè)碼數(shù) PageIndexParameterName = "page",//傳遞給后端的分頁(yè)參數(shù),如果同頁(yè)有多個(gè)分頁(yè),這個(gè)參數(shù)必須不同 Id = "callajax",//分頁(yè)控件的ID,給內(nèi)容修改后需要刷新頁(yè)面使用。 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 > |
然后在需要執(zhí)行后刷新分頁(yè)控件的地方加入,如果添加或者刪除后執(zhí)行
1
|
Webdiyer.MvcPagers.getById( "callajax" ).ajaxReload(); //這里面的ID是分頁(yè)控件指定的ID |
重要。使用上面的方法需要在MvcPager.js的jQuery插件中增加一個(gè)方法
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腳本注冊(cè)方法了。
直接引用MvcPager.js就行了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。