1、添加MvcPager.dll引用
2、页面引用
@using Webdiyer.WebControls.Mvc @model PagedList<System.Data.DataRow>//指定model类型
3、在<bodey>编辑
@*-----搜索表单-------*@
@*
UpdateTargetId 异步更新模块id ListContent
*@
<div id="search">
@using (Ajax.BeginForm("AdminList", new RouteValueDictionary { { "id", "" } }, new AjaxOptions { UpdateTargetId = "ListContent",
InsertionMode = InsertionMode.Replace, HttpMethod = "Post" }, new RouteValueDictionary { { "id", "searchForm" } })) { <ul class="toolbar1"><label>添加日期</label>
<input id="addTimeS" name="addTimeS" type="text" class="dfinput" style="width: 100px; height: 20px; line-height: 20px;" />
—
<input id="addTimeE" name="addTimeE" type="text" class="dfinput" style="width: 100px; height: 20px; line-height: 20px;" />
<input name="" type="submit" value="搜 索" /> </li> </ul> }
@*-----搜索表单结束-------*@ </div> @*-----异步更新模块-------*@ <div id="ListContent"> @Html.Partial("_AjaxAdminList", Model) </div>
@*-----异步更新模块结束-------*@
4、添加分部视图_AjaxAdminList
@using Webdiyer.WebControls.Mvc @model PagedList<System.Data.DataRow> <table class="tablelist"> <thead> <tr> <th><input name="all" id="all" type="checkbox" value="" /></th> <th>管理员编号<i class="sort"><img src="~/Areas/Content/images/px.gif" /></i></th> <th>管理员姓名</th> <th>管理员级别</th> <th>添加时间</th> <th>状态</th> <th>操作</th> </tr> </thead> <tbody> @if (Model != null && Model.Any()) { string className; foreach (var md in Model) { className = ""; if (Convert.ToInt32(md["ClassID"]) == 3) {className = "数据管理员";} if (Convert.ToInt32(md["ClassID"]) == 4) {className = "系统管理员";} if (Convert.ToInt32(md["ClassID"]) == 5) {className = "超级管理员";} <tr> <td>@if (Convert.ToInt32(md["id"]) != 1) {<input name="id" type="checkbox" value="@md["id"]" />}</td> <td>@md["userName"]</td> <td>@md["name"]</td> <td>@className</td> <td>@md["addTime"]</td> <td>@(Convert.ToInt32(md["status"])==0? "正常": "禁用" )</td> <td> @if (Convert.ToInt32(md["id"]) != 1) { <a href="/Cms/User/EditAdmin?id=@md["id"]" class="tablelink">编辑</a>
<a href="javascript:void(0);"
onclick="@(Convert.ToInt32(md["status"]) == 0 ? "javascript:Status(" + md["id"] + ",1)" : "javascript:Status(" + md["id"] + ",0)")"
class="tablelink">
@(Convert.ToInt32(md["status"]) == 0 ? "禁用" : "启用")</a>
<a href="javascript:void(0);" onclick="Deletadmin(@md["id"])" class="tablelink"> 删除</a> } </td> </tr> } } else { <tr><td colspan=" 7" style="text-align:center;">未有数据</td></tr> } </tbody> </table> @Html.Partial("~/Areas/Cms/Views/Shared/PartialPage.cshtml", Model) @*分页显示*@
5、在Shared创建PartialPage分部视图
@using Webdiyer.WebControls.Mvc @model PagedList<System.Data.DataRow> <div class="pagin"> <div class="message">共<i class="blue">@Model.TotalItemCount</i>条记录,当前显示第 <i class="blue">@Model.CurrentPageIndex </i>页</div> @*<ul class="paginList">*@ @Ajax.Pager(Model, new PagerOptions { PageIndexParameterName = "page", ShowPageIndexBox = false, ShowGoButton = false, AutoHide = false, ContainerTagName = "ul", CssClass = "paginList", CurrentPagerItemWrapperFormatString = "<li class=\"paginItem current \"><a href=\"avascript:;\">{0}</a></li>", ShowFirstLast=false, PagerItemWrapperFormatString = "<li class=\"paginItem \">{0}</li>", NextPageText = "<span class=\"pagenxt\"></span>", PrevPageText = "<span class=\"pagepre\"></span>" }, new MvcAjaxOptions { UpdateTargetId = "ListContent", HttpMethod = "Post", DataFormId = "searchForm" }) </div> @*之前的分页样式*@ @*<li class="paginItem"><a href="javascript:;"><span class="pagepre"></span></a></li> <li class="paginItem"><a href="javascript:;">1</a></li> <li class="paginItem current"><a href="javascript:;">2</a></li> <li class="paginItem"><a href="javascript:;">3</a></li> <li class="paginItem"><a href="javascript:;">4</a></li> <li class="paginItem"><a href="javascript:;">5</a></li> <li class="paginItem more"><a href="javascript:;">...</a></li> <li class="paginItem"><a href="javascript:;">10</a></li> <li class="paginItem"><a href="javascript:;"><span class="pagenxt"></span></a></li> </ul>*@
6、在控制器中创建AdminList方法
public ActionResult AdminList(int page=1) { int total; StringBuilder strSql = new StringBuilder(); strSql.Append("id>0 "); string startDate = Common.Tool.GetSafeSqlandHtml(Request["addTimeS"]); string overDate = Common.Tool.GetSafeSqlandHtml(Request["addTimeE"]); if (!String.IsNullOrEmpty(startDate.Trim()) && StringHelp.IsDate(startDate)) { if (startDate.Trim().Length <= 10) { strSql.Append(" and addTime>='" + startDate + " 00:00:00'"); } else { strSql.Append(" and addTime>='" + startDate + "'"); } } if (!String.IsNullOrEmpty(overDate.Trim()) && StringHelp.IsDate(overDate)) { if (overDate.Trim().Length <= 10) { strSql.Append(" and addTime<='" + overDate + " 23:59:59'"); } else { strSql.Append(" and addTime<='" + overDate + "'"); } } PagedList<System.Data.DataRow> pros = null; DataSet dt = BLL.User.GetUserList(page, 10, " addTime desc", strSql.ToString(), out total); pros = new PagedList<System.Data.DataRow>(dt.Tables[0].Select(), page, 10, total); if (Request.IsAjaxRequest()) return PartialView("_AjaxAdminList", pros); return View(pros); }
了解更多可查看 Johnny Yan 的 MVC 之AjaxHelper
最终效果: