2009-10-23 26 views
16

Tôi không thể tìm ra điều này. Câu hỏi này cũng được hỏi ở đây http://www.nabble.com/TableSorter-plugin---default-column-sort-DESC-instead--How--to25180761s27240.html#a25180761 không có phản hồi.Làm thế nào để jQuery Tablesorter sắp xếp giảm dần theo mặc định?

Tôi đã thử

$.tablesorter.defaults.sortInitialOrder = 'desc'; 

và thay đổi các tập tin jquery.tablesorter.js để mặc định 'desc' nhưng nó không hoạt động. Khi tôi nhấp vào tiêu đề cột, loại đầu tiên vẫn tăng dần để người dùng phải nhấp hai lần để giảm giá trị.

Làm thế nào tôi có thể nhận được Tablesorter để sắp xếp theo giảm dần theo mặc định?

Trả lời

15

Trông giống như một lỗi trong mã của bảng, hoặc tôi hiểu nhầm tham số sortInitialOrder là gì. Tại dòng 536 nó đặt thứ tự sắp xếp bằng cách nhìn vào số lần cột đã được sắp xếp và lấy giá trị mod 2. Nó cũng nên tính đến giá trị của sortInitialOrder.

Thay đổi dòng 536 từ

this.order = this.count++ % 2; 

để

this.order = this.count++ == 0 ? this.order : (1 - this.order); 

Và thêm sau dòng này (để các nhấp chuột đầu tiên trên một cột khác nhau mang đến cho bạn mặc định)

$headers.not($cell).each(function() { 
    this.count = 0; 
}); 

và thay đổi dòng 421 từ

o.count = s[1]; 

để

o.order = o.count = s[1]; 

để trật tự ban đầu được ghi đè nếu một sortList được áp dụng.

Sau đó, bạn có thể sử dụng tham số sortInitialOrder cho bảng phân đoạn để thiết lập thứ tự sắp xếp mặc định đầu tiên cho cột. Bất kỳ thứ tự nào được cung cấp trong sortList sẽ ghi đè sortInitialOrder được cung cấp cho toàn bộ bảng.

Lưu ý rằng điều này áp dụng cho Tablesorter 2.0.

+0

Có, nó hoạt động! Cảm ơn nhiều! –

+0

Tuyệt vời - cần thiết để thực hiện việc này trên một số công cụ quản trị tại đây trên trang web :) –

+0

Bạn là một tvanfosson chính! – Aaron

7

Đơn giản chỉ cần sử dụng này, mục thứ hai trong mảng là thứ tự sắp xếp (0 = tăng dần, 1 = giảm dần):

.tablesorter({ sortList: [[0, 1]] }); 
+0

chỉ hoạt động =) – Anubis

21

Hãy thử phiên bản mới nhất từ ​​trang web tablesorter - điều này dường như được cố định ở đâu đó giữa phiên bản 2.0 .3 và 2.0.5.

<script type="text/javascript"> 
$(document).ready(function() 
    { 
     $("#theTable").tablesorter({ 
      sortInitialOrder: 'desc', 
      sortList: [[3,1]] // etc. 

    }); 
    } 
); 
</script> 

... đã làm việc với phiên bản mới nhất của tablesorter, nhưng không làm việc với phiên bản trước đó của bảng. Hy vọng nó giúp!

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