初學MVC,做了個單頁面應用,需要顯示多個分頁,並無刷新更新。 找到了MvcPager控制項,非常好用,在使用ajax過程中遇到很多問題。慢慢調試和楊老師(MvcPaegr作者)請教,總於都解決了。 首先NuGet包添加上。搜索MvcPager可以找到。 控制器端必須引用 using Webdiyer ...
初學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就行了。