MVC框架製作分頁的簡單方法

首先創建一個MVC項目

自己新建好數據庫,列名自定義,不需要很多

我的表單Role
列名:
ID
Name
Remark

然後創建視圖
先建立表單

<div class="input-group">
    <label>名稱:</label>
    <input type="text" class="form-control" id="txtCondName" />
    <input type="button" id="btnSearch" value="搜索" onclick="page(1);" />
</div>
<table class="table table-bordered">
    <thead>
        <tr>
            <th>編號</th>
            <th>名稱</th>
            <th>備註</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <th>@item.ID</th>
                <th>@item.Name</th>
                <th>@item.Remark</th>
            </tr>
        }
    </tbody>
</table>

創建一個nav區域

<nav aria-label="...">
    <ul class="pagination">
        <li class="page-item ">
            共 @ViewBag.totalPages 頁,第
            <input type="number" min="1" max="@ViewBag.totalPages" id="pageIndex" value="@ViewBag.pageIndex" />
            頁,每頁顯示

            <select id="pageSize" onchange="page(1);">
                @{
                    var listPageSize = new List<int> { 5, 10, 20, 50, 100 };
                }
                @foreach (var item in listPageSize)
                {
                    if (@ViewBag.pageSize == @item)
                    {
                        <option value="@item" selected="selected">@item</option>
                    }
                    else
                    {
                        <option value="@item">@item</option>
                    }
                }
            </select></li>
    </ul>
    <ul class="pagination">
        <li class="page-item ">
            <a class="page-link" href="javascript:page(1);" tabindex="-1" aria-disabled="true">首頁</a>
        </li>
        @if (@ViewBag.pageIndex > 1)
        {
            <li class="page-item"><a class="page-link" href="javascript:page(@ViewBag.pageIndex-1);">上頁</a></li>
        }
        else
        {
            <li class="page-item disabled"><a class="page-link" href="javascript:page(@ViewBag.pageIndex-1);">上頁</a></li>
        }


        <li class="page-item " aria-current="page">
            <span class="page-link"> @ViewBag.pageIndex</span>
        </li>

        @if (@ViewBag.pageIndex < @ViewBag.totalPages)
        {
            <li class="page-item " aria-current="page">
                <a class="page-link" href="javascript:page(@ViewBag.pageIndex+1);">下頁 </a>
            </li>
        }
        else
        {
            <li class="page-item disabled" aria-current="page">
                <a class="page-link" href="javascript:page(@ViewBag.pageIndex+1);">下頁 </a>
            </li>
        }

        <li class="page-item">
            <a class="page-link" href="javascript:page(@ViewBag.totalPages);">末頁</a>
        </li>
        <li class="page-item">
            <input type="button" class="page-link" value="GO" onclick="go()" />
        </li>
    </ul>
</nav>

這些就是分頁代碼,上下首頁末頁

然後編輯好控制器內容
將需要定義的命名定義好,並返回值

 public class RoleController : Controller
    {
        RbacDBEntities db = new RbacDBEntities();
        // GET: Role
        public ActionResult Index(int pageIndex=1,int pageSize=10,string name="")
        {
            var totalRows = db.Roles.Count();
            var totalPages = Math.Ceiling(totalRows * 1.00 / pageSize);
            ViewBag.totalPages = totalPages;
           
            var roles = db.Roles.Where(p=>p.Name.Contains(name))
                .OrderBy(p=>p.ID)  //排序
                .Skip((pageIndex-1) * pageSize)    //跳過
                .Take(pageSize)   //取
                .ToList();
            ViewBag.pageIndex = pageIndex;
            return View(roles);
        }
    }

以上代碼就可以做成一個簡單的分頁了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章