Cách phân trang cho một web site

Xin chào,
Cho em hỏi làm sao là phân trang (pagination) cho một danh sách trong website, bình thường em sẽ làm thế này .

  • Tổng số trang trang = tổng số item / số item hiển thị trên mỗi page.
  • Dach sách item mỗi trang bất kỳ bắt đầu = (trang muốn xem - 1) * số item hiển thị mỗi page.
  • Dach sách item mỗi trang bất kỳ kết thúc = trang muốn xem * số item hiển thị mỗi page.

Nhưng em gặp rắc rối trong trường hợp : VD thanh navigation, sidebar có nút lọc, sắp xếp, … với mỗi checkbox là một điều kiện lọc khác nhau thì phải chia lại trang nếu dùng công thức trên thì rất thủ công. Không biết có công cụ, hay cách gì hỗ trợ không ? Em cảm ơn (Hiện lên màn hình bao nhiêu sản phẩm thì query database bấy nhiêu, chứ em không làm theo kiểu load hết lên giao diện rồi phân trang bằng javascript)
Em code ASP,net , Xin cảm ơnBootstrap-Inspired-Pagination-Plugin-For-Vue.js

truyền param, index start & param item count vào mỗi number page truyền lên sever thì thực hiện lệnh select where rownum

4 Likes

Còn tuỳ vào việc “danh sách” của bạn là gì. Nếu chỉ là dữ liệu dạng như ít nhưng nhiều rows (ví dụ danh sách sinh viên) thì bạn có thể query 1 lần hết kết quả ra json, sau đó dùng javascript để làm phần pagination/search/filter. Còn dữ liệu nhiều/nặng thì làm như Mr dtran chỉ bên trên.

5 Likes

dạ ví dụ như web bán rau, hiện ra trang chủ một list các “ô sản phẩm” như này, VD trường hợp kho có 2000 sản phẩm thì không thể load hết 2000 sản phẩm ra giao diện để phân trang bằng javascript được a (em thì muốn xem bao nhiêu thì query database bấy nhiêu), nên em tìm cách nào đó có thể phân trang một cách chung nhất vì trang admin có rất nhiều đối tượng càn quản lý VD đơn hàng, thương ,hiệu sản phẩm, tài khoản, mỗi trang lại thêm chức năng search, sort, filter, … thì nó lại ra kết quả khác nên phải phân trang lại. VD : search “rau xanh” thì có 500 sp trong 2000 sp là rau xanh thì phân trang lại cho kết quả rau xanh

Nếu nhu cầu như vậy thì cách làm y như Mr dtran nói ở trên.

Bạn có thể tham khảo link này

mặc dù là PHP chứ không phải ASP.NET, nhưng về logic thì là như vậy

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?