初學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就行了。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。