MVC Webdiyer分页插件 实例

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=" 100px; height: 20px; line-height: 20px;" />

<input id="addTimeE" name="addTimeE" type="text" class="dfinput" style=" 100px; height: 20px; line-height: 20px;" />
&nbsp; &nbsp;
<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>条记录,当前显示第&nbsp;<i class="blue">@Model.CurrentPageIndex&nbsp;</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

最终效果:

 

原文地址:https://www.cnblogs.com/mobobo/p/5544140.html