Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Đang ở
    Hà Nội
    Bài viết
    0

    Dùng nhiều Pagination trong một view MVC4

    Chào mọi người.
    Hiện nay mình đang tập làm quen với MVC4. Về cơ bản thì mình cũng nắm được chút ít. Cái vấn đề mình đang gặp phải đó là phân trang (pagination) trong một view.
    Mình đang sử dụng plugin jPages để thực hiện pagination.
    Vấn đề mình đang gặp phải ở đây. Mình có 1 bảng học sinh, và mình muốn phân trang liệt kê các học sinh dựa theo [status]. Mình dùng controller và ResultAction đã load được danh sách theo [status] rồi.
    Ban đầu mình phân ra mỗi [status] là một ResultAction và trang trí nó giống dạng tab (boostrap). Nhưng bất tiện ở chỗ, mỗi khi click vào tab status tương ứng (ví dụ: [studying],[dropped],...) thì nó sẽ gọi controller tương ứng với ResultAction và tự load lại trang (cách này dùng jPages ngon lành).
    Mình không muốn mỗi khi click tab tương ứng với [status] reload trang. Mình cũng thử dùng qua partial view nhưng không được.
    Sau đó mình nghiên cứu thì thấy cái jPages nói riêng và các plugin pagination nói chung nó đều dựa theo id của 1 element nào đó (jPages dùng <div id="...">) và vấn đề này mỗi khi load trang lên nó sẽ bị duplicate id nên bị bể tè le.
    Mình không muốn dùng paging dạng table (nhìn nó ko chuyên nghiệp cho lắm - mình muốn design theo kiểu mỗi 1 record thì có ảnh học sinh, rồi bên phải theo thứ tự tự trên xuống là: tên, lớp, status...) nên mình design theo dạng tag <div>.
    Mọi người có ai có giải pháp cho vấn đề này của mình không? Mình muốn tạo ra dạng tab, mỗi tab chứa danh sách học sinh tương ứng với [status]. Và khi nào mình click vào tab nào thì danh sách đó mới được load (cái này là option thêm thôi, nếu ko dc thì ngay lần load đầu tiên load toàn bộ danh sách học sinh về phía client cũng được).

    Mình là mình bí rồi Mong mọi người giúp đỡ

  2. #2
    Ngày tham gia
    Sep 2015
    Đang ở
    Số 60 Thái Hà, Đống Đa, Hà Nội
    Bài viết
    0
    ActionResult hoặc Action method chứ hổng có ResultAction [IMG]images/smilies/Shame_on_you.gif[/IMG]

    Thực sự là .... . chả hiểu bạn viết gì [IMG]images/smiliesot_talking.gif[/IMG]

    Nếu bạn mới làm quen với MVC4 thì tốt nhất là hãy sử dụng những khả năng của MVC4 trước đã, khi nào thành thạo rồi thì mới nghĩ tới các vấn đề nâng cao

    Nếu bạn muốn dùng ajax thì có các lựa chọn thế này:
    + Nếu bạn muốn để cho Server lo toàn bộ từ việc đọc dữ liệu đến render mã html, phía client chỉ việc dùng ajax gọi đến Action Method, nhận lấy mã Html rồi chèn nó vào 1 thẻ nào đó : hãy chọn kiểu trả về của Action method là PartialViewResult
    + Nếu bạn muốn Server chỉ xử lý và trả về các đối tượng dạng JSON, jquery ở phía client lo việc render html thì chọn kiểu trả về là JSonResult
    + Bạn cũng có thể trả về string trong trường hợp dữ liệu là đơn giản, hoặc là bạn muốn trả về dữ liệu XML

    MVC4 hỗ trợ cơ chế ajax "ẩn" - unobtrusive ajax - với các help method
    @Ajax.ActionLink : Sinh ra liên kết <a> mà khi click sẽ gọi đến chức năng ajax
    @Ajax.BeginForm : Sinh ra 1 form submit bằng ajax
    Ngoài ra, bạn cũng có thể tự do sử dụng ajax của jquery theo cách truyền thống


    Bạn cứ thử tự làm chức năng phân trang = ajax của riêng bạn xem, cứ 1, 2 ,3 ,4, 5, xấu mù cũng được, chừng nào ổn rồi thì hãy chuyển qua dùng thư viện bên ngoài


    @Edit: À, hơi hiểu 1 chút ý bạn rồi. Hình như là bạn xây dựng 1 trang có nhiều tab ( hiển thị kiểu như tab trong firefox, có thể qua lại giữa các tab ), mỗi tab như thế bạn có 1 bộ phân trang riêng nằm ở dưới cùng
    Vấn đề của bạn là xung đột id name do các bộ phân trang ở các tab khác nhau có cùng id phải ko nhỉ. Vậy thì đổi id đi thử xem sao ? Bạn bắt sự kiện chuyển tab và đảm bảo rằng chỉ có tab đang active là bộ phân trang xài đúng id đó, mấy bộ phân trang ở các tag ẩn thì sửa lại cho nó 1 cái id khác. Ví dụ tag active có id là BoPhanTrang thì các tag kia đổi thành BoPhanTrang _1, BoPhanTrang _2, chừng nào chuyển tag lại đổi, làm thử xem có đc ko ?

    Nếu vấn đề là do cách đặt tên của jPages thì bạn cứ nhè nó mà chém, mvc đâu liên quan gì =))

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •