1. Cài đặt thư viện Phân trang từ Nuget trên Project ASP.NET MVC Core
Vào Nuget, tìm từ khoá "X.PagedList.Mvc.Core", cài đặt phiên bản mới nhất
2. Sử dụng
- View
+ Vào View của List - hiển thị danh sách - ở đây là Customer>Index.cshtml
+ Dòng đầu tiên, chèn thư viện vào:
@using X.PagedList;
@using X.PagedList.Mvc.Core;
+ Dòng dưới cùng, chỗ hiển thị phân trang thì chèn dòng code này vào:
@Html.PagedListPager((IPagedList) Model, page => Url.Action("Index", new {page = page}),
new X.PagedList.Web.Common.PagedListRenderOptions {
LiElementClasses = new string[] {"page-item"},
PageClasses = new string[] { "page-link" }
})
- Controller
[HttpGet]
public ActionResult Index(string searchString, int? page)
{
var khachHangList = khachHangRepository.GetKhachHangs().ToPagedList(page ?? 1, 5);
if (!string.IsNullOrEmpty(searchString))
{
searchString = searchString.ToLower();
khachHangList = khachHangRepository.GetKhachHangByName(searchString).ToPagedList(page ?? 1, 5);
}
TempData["searchString"] = searchString;
return View(khachHangList);
- Repository
+ IKhachHangRepository
IEnumerable<KhachHang> GetKhachHangs();
IEnumerable<KhachHang> GetKhachHangByName(string name);
+ KhachHangRepository
public IEnumerable<KhachHang> GetKhachHangs() => KhachHangDao.Instance.GetKhachHangList();
public IEnumerable<KhachHang> GetKhachHangByName(string name) => KhachHangDao.Instance.GetKhachHangBySearchName(name);
- DAO (CustomerDao)
public IEnumerable<KhachHang> GetKhachHangList()
{
using var context = new MyStockContext();
List<KhachHang> model = context.KhachHangs.ToList();
try
{
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return model;
}
public IEnumerable<KhachHang> GetKhachHangBySearchName(string name)
{
var context = new MyStockContext();
List<KhachHang> model = context.KhachHangs.ToList();
try
{
if (!String.IsNullOrEmpty(name))
{
model = model.Where(x => x.TenKhachHang.ToLower().Contains(name)).ToList();
}
else
{
return model;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return model;
}