上次記錄了Pager分頁控件的使用,現在,問題又來了。怎么使頁面刷新又不改動Url呢?Url的改動,引起頁面的改變。所以不得不又重新研究一下Pager控件,下面開始介紹怎么使用Pager分頁控件的ajax實現,看不懂的可以先參考一下我的另一篇,《Pager開源控件使用(MVC)》:
首先我們要創建一個局部視圖:
在此注意一點,需要把“創建為分部視圖”選上,因為這個Demo就是已分部視圖來實現Ajax局部刷新。
現在創建好視圖之后我們需要做的就是改掉這個頁面的默認數據,完整的頁面就如下圖,供參考:
1 @using Webdiyer.WebControls.Mvc@*引用命名空間,給Model加上PageList泛型*@ 2 @model PagedList<PagerTest.Models.View_SaleTeacherCours> 3 <div id="ProList"> 4 <table> 5 <tr> 6 <th>課程名</th> 7 <th>教師名</th> 8 </tr> 9 @{ 10 11 foreach(var item in Model) 12 { 13 <tr><td>@item.Name</td> 14 <td>@item.Username</td> 15 </tr> 16 } 17 } 18 <tr> 19 </tr> 20 </table> 21 @Ajax.Pager(Model, new PagerOptions() { PageIndexParameterName = "id" }, new AjaxOptions { UpdateTargetId = "ProList" }) 22 23 </div>
這個頁面很關鍵,首先命名空間引用就不說了,注意下方的:
@Ajax.Pager(Model, new PagerOptions() { PageIndexParameterName = "id" }, new AjaxOptions { UpdateTargetId = "ProList" })
這句的使用的要點是,需要包裹在div id=“ProList”中,再注意這一句UpdateTargetId = "ProList",ProList就是div的id。
好了這個頁面完成。
下面來做大家都很熟悉的事:
打開需要分頁的Controllers:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using PagerTest.Models; using Webdiyer.WebControls.Mvc; namespace PagerTest.Controllers { public class OrderController : Controller { DBDataContext db = new DBDataContext(); public ActionResult MsAjaxProduct(int ? id,int proid=1) { PagedList<View_SaleTeacherCours> list = db.View_SaleTeacherCours.ToPagedList(id ?? 1, 2); if (Request.IsAjaxRequest()) return PartialView("ProducList", list); return View(list); } } }
順帶介紹下ToPagedList(id ?? 1,2)默認顯示第1頁,每頁2行。
然后看看View:
完整代碼如下,供參考:
1 @using Webdiyer.WebControls.Mvc 2 @model PagedList<PagerTest.Models.View_SaleTeacherCours> 3 @{ 4 ViewBag.Title = "MsAjaxProduc"; 5 } 6 7 8 @*<script src="http://www.cnblogs.com/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>*@ 9 @*<script src="http://www.cnblogs.com/Scripts/MicrosoftAjax.js" type="text/javascript"></script>*@ 10 @*<script src="http://www.cnblogs.com/Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>*@ 11 <script src="http://www.cnblogs.com/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script> 12 <h2>ASP.NET MVC Pager 使用 MicrosoftAjax分頁示例</h2> 13 14 @{ 15 Html.RenderPartial("ProducList", Model); 16 }
前3個Script引用,我一一測試過,對於我沒有都沒什么關系,頁面照樣是無刷新,第4個Script這個就必須要引用了,沒有這個,可就不能實現局部刷新。
當然,這些都不需要下載,在項目的Script的文件夾中自帶有,我是隨便拖過來就用上了,如果要規范點,那個src 就需要用@Url.Content(.....)來填充,順帶說一下,不要拍磚哦
(^。^)。
看下我的效果圖:
~~~Url注意
下一頁:
Demo 造完。o(≧v≦)o~~
送上附件- -。 一個個郵 也麻煩: