2008-10-20 39 views
12

Tôi có bảng cổ điển với các bản ghi có thể mở rộng và có thể mở rộng được nếu mở rộng hiển thị một vài ghi chú con (như các bản ghi mới trong cùng bảng cha, không phải bảng con/div con). Tôi cũng sử dụng tablesorter và hoàn toàn thích nó.Để các bảng bảng jQuery hoạt động với các hàng bảng ẩn/nhóm

Vấn đề là tablesorter không giữ hồ sơ con mở rộng bên cạnh hồ sơ gốc. Nó sắp xếp chúng như thể chúng là cấp cao nhất. Vì vậy, mỗi khi bảng được sắp xếp theo một cột, các hàng con sẽ kết thúc ở khắp nơi và không phải nơi tôi muốn chúng.

Có ai biết về tiện ích mở rộng tốt cho bảng biểu hoặc cấu hình cụ thể cho phép các bảng con giữ các hàng con được nhóm cùng với hàng chính ngay cả sau khi sắp xếp không? Hoặc tôi có phải từ bỏ bảng phân cảnh có lợi cho một số API khác hoặc bắt đầu quá trình xấu xí khi viết tiện ích con của riêng tôi không? Tôi có nên tránh phương pháp dựa trên css để ẩn các hàng riêng lẻ của bảng để biểu thị các hàng thu gọn không?

Trả lời

16

Nếu bạn muốn giữ tablesorter, có một mod mà tôi đã sử dụng cho mục đích available here

này Sau đó có nó, bạn thực hiện thứ hai (con có thể mở rộng) hàng của bạn có lớp "mở rộng con" , và tablesorter sẽ biết để giữ cho hàng được ghép nối với hàng cha của nó (hàng trước).

+0

cám ơn tôi đã phát hiện ra rằng mod nhưng không thấy bất kỳ tài liệu trên phải làm gì với nó. Bạn khá nhiều tìm thấy tài nguyên duy nhất trên Google, giống như tôi, có thể làm điều này, nhưng rõ ràng bạn hiểu nó tốt hơn tôi đã làm. Tôi đã viết bản sửa lỗi xấu xí của riêng tôi. – Josh

+0

Xin chào Adam, tôi vừa mới xem qua bài đăng này. Tôi đã đăng một câu hỏi mới mà tôi đã tự hỏi nếu bạn có thể xem: http://stackoverflow.com/questions/9240905/ajax-appended-collapsible-rows-to-a-jquery-javascript-tablesorter-table-lack -nee. Điểm mấu chốt là các hàng được thêm vào AJAX của tôi không nhận được các thuộc tính khiến chúng có thể thu gọn. Tôi tự hỏi làm thế nào để đảm bảo tablesorter.js đúng cách gắn thêm DOM khi AJAX. thanks, -tim –

1

Sửa lỗi xấu thay vì sử dụng ở trên liên quan đến việc chỉ định lớp css parentId và lớp childId css cho hàng cha và con, sau đó sử dụng tiện ích để điều chỉnh lại. Chỉ trong trường hợp bất cứ ai khác chạy qua vấn đề này. Nó rõ ràng không phải là mã tốt nhất, nhưng nó hoạt động cho tôi!

$("tbody tr[class^='parent']", table).each(function() { 
$(this).after($("tbody tr[class^='child"+$(this).attr("class").substring(6)+"']", table)); 
}); 
11

Thực tế, rằng mod of tablesorter được đề cập bởi @AdamBellaire đã được thêm vào tablesorter v2.0.5. Tôi đã ghi lại tài liệu how to use the ccsChildRow option trên blog của mình.

Ngoài ra, nếu bạn quan tâm, tôi có một fork of tablesorter trên github trong đó có rất nhiều cải tiến và các vật dụng hữu ích :)

+0

Kể từ v2.4, lớp 'expand-child' được thay đổi thành' tablesorter-childRow'. Giám sát người dùng phiên bản mới hơn. – Rakesh

Các vấn đề liên quan