MVCpager 用法.

先加个Nuget包 [Webdiyer.MvcPager]

@using Webdiyer.WebControls.Mvc
@model PagedList<Model.User>
@{
    ViewBag.Title = "Users Index";
}
<h2>Users Index</h2>

@*此处通过RouteValueDictionary.把所要查询的参数通用URL保存起来.翻页时保留查询条件*@
@using (Html.BeginForm("Index", "Users", new RouteValueDictionary { { "id", "" } }, FormMethod.Get, new { @class = "form-inline" }))
{
    <input type="text" id="UserName" name="UserName" placeholder="UserName" class="form-control" value="@Request.QueryString["UserName"]" />
    <button id="submit1" type="submit" class="btn  btn-primary"><i class="fa fa-search"></i> Search</button>
    <a href="~/Users/Users/Create" class="btn btn-success pull-right"><i class="fa fa-plus-circle"></i> Create New</a>
}
<br />

<table class="table table-hover">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.UserName)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.IsDisabled)
        </th>
        <th></th>
    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.UserName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Name)
            </td>
            <td>
                @item.IsDisabled
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
                @Html.ActionLink("Details", "Details", new { id = item.Id }) |
                @Html.ActionLink("Delete", "Delete", new { id = item.Id })
            </td>
        </tr>
    }

</table>

<table>
    <tr>
        @*第几页/共几页 共几条*@
        @*<td width="200px">
                @Model.CurrentPageIndex / @Model.TotalPageCount  All counts - @Model.TotalItemCount
            </td>*@
        <td>
            @*bootstrap样式*@
            <nav>
                @Html.Pager(Model, new PagerOptions
           {
               PageIndexParameterName = "id",
               NumericPagerItemCount = 5,
               FirstPageText = "|<",
               PrevPageText = "<",
               NextPageText = ">",
               LastPageText = ">|",
               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>",
               Id = "bootstrappager"
           })
            </nav>
        </td>
    </tr>
</table>

 

后台方法.部分:

 public List<User> GetUserList(string UserName, int id)
        {
            var user = db.User.AsQueryable();
            if (!string.IsNullOrEmpty(UserName))
            {
                user = user.Where(u => u.UserName.Contains(UserName));
            }
            //默认最多查询100条数据.超出100条.查询是没有意义的,用户不会在众多数据中手动查询
            user = user.OrderBy(u => u.Id).Take(100);
            return user.ToPagedList(id, 10);
        }

 

posted on 2018-01-30 10:21  cxd1008  阅读(560)  评论(0编辑  收藏  举报