Thứ Bảy, 4 tháng 3, 2017

Phân trang trong ASP.NET MVC bằng thư viện PagedList.MVC

Sau bài viết Làm thế nào để phân trang dữ liệu với PHP thì mình tiếp tục ra mắt bài hướng dẫn Phân trang trong ASP.NET MVC bằng thư viện PagedList.MVC siêu hot này. Bài viết này sẽ giúp các bạn đang học và làm việc với ASP.NET MVC có thể dễ dàng thực hiện chức năng phân trang sử dụng thư viện PagedList.MVC được tải về từ công cụ NuGet Package trong Visual Studio.



Bước 1: Mở giao diện Package Manager Console và nhập lệnh "Install-package PagedList.MVC" để tải thư viện PagedList.MVC vào project


Bước 2: Using namespace PagedListPagedList.MVC trong Controller



Bước 3: Thêm tham số page trong các action mà bạn muốn phân trang đồng thời danh sách truyền qua view phải được ép thành kiểu IPagedList<T> bằng phương thức ToPagedList(). Trong phương thức này bạn truyền vào 2 giá trị là trang đang đứng lấy từ tham số pagesố lượng record trên 1 trang. Trong ví dụ này mình để 20 record trên 1 trang.

Cũng cần chú ý rằng thư viện PagedList.MVC yêu cầu bạn phải sắp xếp danh sách trước khi gọi phương thức ToPagedList() nên trong ví dụ dưới mình đã sắp xếp danh sách giảm dần theo SanPhamID bằng phương thức quen thuộc OrderByDescending. Đây là đoạn code tổng quát:




Giải thích cho bạn luôn  lệnh page ?? 1, lệnh này đơn giản kiểm tra nếu giá trị page = null thì sẽ gán page = 1 bởi vì mặc định người dùng lần đầu vào trang thì họ sẽ ở trang 1.

Bước 4: Mở view lên và khai báo 2 namespace PagedList và PagedList.MVC trong view. Để hiển thị giao diện phân trang chúng ta dùng phương thức Html.PagedListPager(). Phương thức này đòi hỏi bạn truyền vào 2 đối số là danh sách dữ liệu và đường dẫn URL khi người dùng click vào button phân trang (tham số thứ 2 bạn truyền vào bằng lambda expression nhé). Đây là đoạn lệnh trong view của mình cho bạn tham khảo



Vậy là đã xong các bước sử dụng thư viện PagedList.MVC thực hiện chức năng phân trang trong ASP.NET MVC. Chúc bạn thực hành thành công.

Chú ý: Mình có nhận dạy kèm ASP.NET MVC từ cơ bản đến nâng cao với học phí phù hợp. Yêu cầu nắm vững C# và SQL căn bản. Chi tiết xin liên hệ facebook: https://www.facebook.com/aituan.nguyen. Cảm ơn bạn đã quan tâm.


EmoticonEmoticon