2011-07-01 1 views
7

Tôi đang sử dụng jQuery Tablesorter 2.0 plugin để cung cấp một số chức năng phân loại bảng cơ bản.jQuery tablesorter với số hàng

Trên bảng của tôi, tôi muốn có một cột cho số hàng. Vấn đề là, plugin Tablesorter sắp xếp cột này với mọi thứ khác. Tôi đã thử đặt thuộc tính "tiêu đề" cho cột đầu tiên, nhưng điều đó chỉ loại bỏ khả năng phân loại. Nó không ngăn cản cột được sắp xếp lại khi tôi sắp xếp theo một cột khác.

Có danh sách số hàng có thể có với plugin này không? Bạn có thể nghĩ ra cách giải quyết vấn đề không?

+2

Để mọi người bị giảm giá ... nếu bạn gặp sự cố với nội dung nào đó trên StackOverflow, tốt hơn là để lại nhận xét giải thích lý do của bạn. Nếu không, không ai có thể tìm hiểu, và downvote ổ đĩa của bạn không có giá trị bất cứ điều gì. – Brad

Trả lời

12

Có vẻ như bạn cần phải đổi lại các hàng mỗi khi bảng được sắp xếp. Hãy thử điều này (sử dụng nó sau khi bạn đã khởi tạo TableSorter trên bàn của bạn):

var table = $("#myTable"); 
table.bind("sortEnd",function() { 
    var i = 1; 
    table.find("tr:gt(0)").each(function(){ 
     $(this).find("td:eq(0)").text(i); 
     i++; 
    }); 
}); 
+0

Điều này thật hoàn hảo! Nhược điểm duy nhất là những con số cũ xuất hiện trong một khoảnh khắc ngắn ngủi trong khi sự lặp lại xảy ra, nhưng tôi chắc chắn không có gì có thể được thực hiện về điều này. Cảm ơn một lần nữa! – Brad

+0

Bạn đang chào đón, vui vì tôi có thể giúp :) –

+0

cảm ơn mã này, chỉ cần sử dụng để giải quyết một nhức đầu, làm việc một điều trị. –

0

Tôi đã tìm thấy một giải pháp về ordenation của số ordinals, dựa trên mã @ Chris Laplante. Giải pháp chạy lần lượt sắp xếp lần đầu tiên khi bảng được tạo. Vì vậy, tôi phải chỉnh sửa mã nguồn. Phải tính đến khi cập nhật phần mềm bảng.

Trong file jquery.tablesorter.js xung quanh dòng 370, chúng ta có thể tìm thấy cò:

// trigger sortend 
setTimeout(function() { 
    $(table).trigger("sortEnd"); 
}, 0); 

Thay đổi về:

// trigger sortend 
if (runonce == undefined){ 
    setTimeout(function() { 
     $(table).trigger("sortEnd"); 
    }, 0); 
    runonce = true; 
} 

và xác định các biến RunOnce số đặt trên hàm appendToTable:

var runonce;     
function appendToTable(table, cache) { ... 

Bạn có thể kiểm tra kết quả trên: http://formulaeweb.es/resultados.php nhấp vào "Puntos".