asp.net 中使用 pagedlist 分頁並具有查詢功能的實現方法


 用pagedlist在項目中做分頁已N次了,今天再次用實例來實現一個帶查詢功能的分頁例子。

1、在view代碼:

@using PagedList.Mvc
@model BGZS.Models.UserPagedList


<div class="search"> <form method="post" action="/user/index"> <input placeholder="真實姓名" name="realname" /><button class="btnSearch">查詢</button> </form> </div> <table class="table table-striped"> <tr> <th> 登錄名 </th> <th> 真實姓名 </th> <th>學校</th> <th>年級</th> <th>班級</th> <th>操作</th> </tr> @foreach (var item in Model.list) { <tr data-id="@item.id"> <td> @Html.DisplayFor(modelItem => item.name) </td> <td> @item.realname </td> <td> @item.school </td> <td> @item.stugrade </td> <td>@item.stuclass</td> <td> <a href="javascript:;" class="btnResetPwd">重置密碼</a> | <a href="javascript:;" class="btnDel">刪除</a> </td> </tr> } </table> @if (Model != null) { <div class="pagedList" style="margin:0 auto;text-align:center"> @Html.PagedListPager(Model.list, page => Url.Action("index", new { page,realname= Model.curUser.realname }), PagedListRenderOptions.Classic) </div> }

上面注意在查詢部分的from表單, name屬性中指明后台接收的變量。最下方的是分頁代碼,注意突出顯示部分是在分頁時傳值的變量名realname= Model.curUser.realnameModel.curUser是后台指定的用戶User類的當前用戶,這個可以在第二步中具體查看,realname與表單中的一致,保證后台能接收到。

2、MVC控制器

        private OnlineTestEntities db = new OnlineTestEntities();
        private const int pagesize = 15;

       
        public ActionResult Index(User userinfo, int page = 1)
        {
            var list = db.Users.ToList();

            if (!string.IsNullOrEmpty(userinfo.realname))
            {
                list = list.Where(x => x.realname.Contains(userinfo.realname)).ToList(); }
            UserPagedList mylist = new UserPagedList()
            {
                list = list.OrderByDescending(x => x.id).ToPagedList<User>(page, pagesize),
                curUser = userinfo
            };
            return View(mylist);
        }    

注意紅色代碼, User中有一屬性正是第一步中的realname屬性,這是查詢條件。UserPagedList  類是把分頁集合包裝的一個類,是自己寫的,如下 :

3、 UserPagedList類:

public class UserPagedList
    {
        public User curUser { get; set; }
        public PagedList.IPagedList<User> list { get; set; }
    }

好了,實現完畢。這種實現現在是我經常用的方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM