iT邦幫忙

2021 iThome 鐵人賽

DAY 26
1
自我挑戰組

C# 學習之旅系列 第 26

ASP.NET MVC 從入門到放棄(Day26)-PagedList分頁套件介紹

  • 分享至 

  • xImage
  •  

接下來講講PagedList套件的使用方式

在前面有提到Entity Framework 使用的方式 這邊以Day20資料庫為例這次使用Order作為範例
https://ithelp.ithome.com.tw/upload/images/20210922/20140001oerg3XJL1A.png

1.首先先去工具->NuGet套件管理員->管理方案NuGet套件->安裝PagedList.Mvc
https://ithelp.ithome.com.tw/upload/images/20210922/201400010L8tDfnoBX.png

2.新增一個PagedListController 並加入相關程式碼

using PagedList;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplication1.Models;

namespace WebApplication1.Controllers
{
    public class PagedListController : Controller
    {
        // GET: PagedList
        private DBContext _db = new DBContext();

        protected override void Dispose(bool disposing)
        {          
            if (disposing)
            {
                _db.Dispose(); 
            }
            base.Dispose(disposing);

        }
        public ActionResult Index(int page = 1, int pageSize = 15)
        {
            var ListAll = from m in _db.Orders
                               select m;

            var pagelist= ListAll.ToList().ToPagedList(page, pageSize);

            return View(pagelist);
        }
    }
}

1.db 為連線資料庫
2.page 為第幾頁
3.pageSize 顯示幾筆資料
4.最上方需加入using PagedList

3.View的部分

@model IEnumerable<WebApplication1.Models.Order>
@using PagedList.Mvc;
@using PagedList;

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.CustomerID)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.EmployeeID)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.OrderDate)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.RequiredDate)
        </th>

    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.CustomerID)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.EmployeeID)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.OrderDate)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.RequiredDate)
            </td>

            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.OrderID }) |
                @Html.ActionLink("Details", "Details", new { id = item.OrderID }) |
                @Html.ActionLink("Delete", "Delete", new { id = item.OrderID })
            </td>
        </tr>
    }

</table>
@Html.PagedListPager((IPagedList)Model, x => Url.Action("Index", new { page = x }))

1.上方需加入@using PagedList.Mvc、@using PagedList
2.最下方需加入@Html.PagedListPager

4.結果
https://ithelp.ithome.com.tw/upload/images/20210922/20140001kbQawQRRSv.png


上一篇
ASP.NET MVC 從入門到放棄(Day25)-MVC模型驗證介紹
下一篇
ASP.NET MVC 從入門到放棄(Day27)-IIS 發佈介紹
系列文
C# 學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言