.NET MVC和EF实现分页

.NET MVC和EF实现分页

控制器

 public ActionResult Index(string Name = "", int pageIndex1 = 1, int pageSize1 = 10)
        {
           
            var totalRows = db.Roles
               .Where(p => Name == "" || p.Name.Contains(Name))
               .Count();
            var pageCount1 = Math.Ceiling(totalRows* 1.00 / pageSize1);

            var roles = db.Roles
              .Where(p => Name == "" || p.Name.Contains(Name)).ToList();
              var rows = db.Roles.Where(p => p.Name.Contains(name))
                .OrderBy(p => p.ID)
                .Skip(pageSize * (pageIndex - 1))//跳过
                .Take(pageSize)//取
                .ToList();//转化为集合
                
            ViewBag.rows= rows;
            ViewBag.pageIndex1 = pageIndex1;
            ViewBag.pageSize1 = pageSize1;
            ViewBag.pageCount1 = pageCount1;
            ViewBag.totalRows= totalRows;
            ViewBag.Name = Name;
            return View(roles);
        }

页面

nav class="d-flex justify-content-between">
        <ul class="pagination">
            <li class="page-item">总共<label>@ViewBag.totalRows1</label>条记录</li>
            <li class="page-item">
                <select onchange="window.location = this.value;">
                    @{
                        var pageSizes = new int[5] { 5, 10, 20, 50, 100 };
                        foreach (var i in pageSizes)
                        {
                            if (i == ViewBag.pageSize1)
                            {
                                <option selected="selected" value="/Role/Index?name=@ViewBag.Name&pageindex1=@(ViewBag.pageIndex1)&pageSize1=@i">@i</option>
                            }
                            else
                            {
                                <option value="/Role/Index?name=@ViewBag.Name&pageindex1=@(ViewBag.pageIndex1)&pageSize1=@i">@i</option>
                            }

                        }

                    }}
/select>
            </li>
        </ul>
        <ul class="pagination">
            <li class="page-item">
                <a class="page-link" href="/Role/Index?name=@ViewBag.Name&pageindex=1&pageSize=@ViewBag.pageSize1">首页</a>
            </li>
            @if (ViewBag.pageIndex1 > 1)
            {
                <li class="page-item">
                    <a class="page-link" href="/Role/Index?name=@ViewBag.Name&pageindex=@(ViewBag.pageIndex1 - 1)&pageSize=@ViewBag.pageSize1">上一页</a>
                </li>
            }
            else
            {
                <li class="page-item disabled">
                    <a class="page-link" href="/Role/Index?name=@ViewBag.Name&pageindex=@(ViewBag.pageIndex1 - 1)&pageSize=@ViewBag.pageSize1">上一页</a>
                </li>
            }
            <li class="page-item">
                <a class="page-link" href="">@ViewBag.pageIndex1</a>
            </li>
            @if (ViewBag.pageIndex1 < (ViewBag.pageCount))
            {
                <li class="page-item">
                    <a class="page-link" href="/Role/Index?name=@ViewBag.Name&pageindex=@(ViewBag.pageIndex1 + 1)&pageSize=@ViewBag.pageSize1">下一页</a>
                </li>
            }
  else
            {
                <li class="page-item disabled">
                    <a class="page-link" href="/Role/Index?name=@ViewBag.Name&pageindex=@(ViewBag.pageIndex1+1)&pageSize=@ViewBag.pageSize1">下一页</a>
                </li>
            }

            <li class="page-item">
                <a class="page-link" href="/Role/Index?name=@ViewBag.Name&pageindex=@ViewBag.pageCount1&pageSize=@ViewBag.pageSize1">末页</a>
            </li>
  <li class="page-item">
                <input type="button" id="btnGo" value="Go" class="page-link" />
            </li>
        </ul>
    </nav>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值