2011-10-24 51 views
17

Dưới đây là trang:Jquery DataTables, sắp xếp theo cột cụ thể?

http://csuvscu.com/

tôi cần phải sắp xếp theo ngày Cột, ngay bây giờ nó cần phải đọc 06 Tháng Mười Một, ngày 05 tháng 11 và cuối cùng Tháng Mười 7.

Làm thế nào để làm điều này?

+2

Tôi khuyên bạn nên thêm một số mã áp dụng vào câu hỏi của bạn. Có một người có thể truy cập trang bạn đã liên kết và xem nguồn, nhưng ý tưởng là miễn là bạn cung cấp thông tin cần thiết ở đây, mã sẽ vẫn khả dụng ngay cả khi trang web của bạn bị hỏng trong tương lai . –

+0

Hãy xem [bài đăng] sau đây (http://www.codeunit.co.za/2010/04/04/jquery-datatables-how-to-sort-by-a-specific-column-on-load /) –

+0

@KileyNaro làm cho một điểm tốt về các trang web đi xuống, tôi vẫn sẽ giữ liên kết - nó đã được tốt đẹp cho tôi không phải tạo lại một thử nghiệm trên máy địa phương của tôi cho một cái gì đó như thế này - đã làm tất cả trong javascript Chrome giao diện điều khiển :) – shaheenery

Trả lời

49

Mã hiện tại của bạn:

$('table').dataTable({ 
    // display everything 
    "iDisplayLength": -1 
}); 

gì bạn có thể làm:

oTable = $('table').dataTable({ 
    // display everything 
    "iDisplayLength": -1 
}); 

oTable.fnSort([ [0,'desc'] ]); // Sort by first column descending 

Nhưng như đã chỉ ra trong các bình luận dưới đây, điều này có thể là một phương pháp làm sạch:

$('table').dataTable({ 
    // display everything 
    "iDisplayLength": -1, 
    "aaSorting": [[ 0, "desc" ]] // Sort by first column descending 
}); 
+0

Cảm ơn bạn rất nhiều! –

+1

Bạn được chào đón ... như @emmanual N linked_to ở trên, bạn có thể aways sử dụng biểu mẫu này là một trình dọn dẹp theo ý kiến ​​của tôi '$ ('table'). DataTable ({ " iDisplayLength ": -1 " aaSorting " : [[0, "desc"]] }); ' – shaheenery

+0

khi đang thử phương pháp này trong phương pháp Java để đặt tùy chọn, thiếu một số thứ. Bạn có thể vui lòng thêm nó cho java bên? –

12

DataTables sử dụng thứ tự chữ cái làm phương pháp sắp xếp mặc định. Đây thực sự là những gì xảy ra ở đây.

Có hai giải pháp:

  • Xác định ngày sắp xếp phương pháp riêng của bạn
  • Sắp xếp bảng bằng cách sử dụng một cột ẩn chứa ngày trong Unix Timestamp (giây trôi qua kể từ ngày 1 tháng 1 1970).

Nếu bạn muốn người dùng tự mình có thể sắp xếp cột, bạn có thể sử dụng giải pháp đầu tiên.

--------------- Giải pháp đầu tiên:

Chúng tôi cần nói cho plugin DataTable biết phải làm gì với các cột của chúng tôi. Bạn sẽ cần phải sử dụng "aoColumns" bất động sản:

$('table').dataTable({ 
    // display everything 
    "iDisplayLength": -1, 
    "aoColumns":[ 
     {"sType": "shaheenery-date"}, 
     {"bSortable": true}, 
     {"bSortable": true}, 
     {"bSortable": true}, 
     {"bSortable": true} 
    ] 
}); 

Sau đó xác định "shaheenery-date-asc" và "shaheenery-date-desc" phương pháp phân loại. Bạn cũng cần một chức năng "getDate" mà dịch ngày ở định dạng số:

function getDate(a){ 
     // This is an example: 
     var a = "Sunday November 6, 2011"; 
     // your code =) 
     // ... 
     // ... 
     // You should output the result as YYYYMMDD 
     // With : 
     // - YYYY : Year 
     // - MM : Month 
     // - DD : Day 
     // 
     // Here the result would be: 
     var x = 20111106 
     return x; 
} 

jQuery.fn.dataTableExt.oSort['shaheenery-date-asc'] = function(a, b) {  
     var x = getDate(a); 
     var y = getDate(b); 
     var z = ((x < y) ? -1 : ((x > y) ? 1 : 0)); 
     return z; 
}; 

jQuery.fn.dataTableExt.oSort['shaheenery-date-desc'] = function(a, b) { 
     var x = getDate(a); 
     var y = getDate(b); 
     var z = ((x < y) ? 1 : ((x > y) ? -1 : 0)); 
     return z; 
    }; 

--------------- Giải pháp thứ hai:

Chúng tôi sẽ sử dụng thuộc tính "aoColumns". Lần này chúng ta nói với DataTable để ẩn cột cuối cùng sẽ chứa ngày trong Unix Timestamp. Chúng ta cũng cần phải xác định cột này như một mặc định để phân loại với "aaSorting":

$('table').dataTable({ 
    // display everything 
    "iDisplayLength": -1, 
    "aaSorting": [[ 5, "desc" ]], 
    "aoColumns":[ 
     {"bSortable": false}, 
     {"bSortable": true}, 
     {"bSortable": true}, 
     {"bSortable": true}, 
     {"bVisible": false} 
    ] 
}); 
2
oTable = $('#DataTables_Table_0').dataTable({ //table id -->DataTables_Table_0 

    iVote: -1, //field name 
    "bRetrieve":true 

}); 

oTable.fnSort([ [1,'desc'] ]); // Sort by second column descending 
1
 $('#id').dataTable({ 
    "bSort": true, 
    "aoColumnDefs": [{ 
     'bSortable': false, 
     'aTargets': [ 1 ] } 
     ] 
}); 
1

Những câu trả lời hiện đang sử dụng DataTables di sản cú pháp. Phiên bản 1.10+ nên sử dụng cú pháp sau:

$('table').dataTable({ 
    "pageLength": -1, //display all records 
    "order": [[ 0, "desc" ]] // Sort by first column descending 
}); 

tham khảo:

1

Với phiên bản mới nhất của dữ liệu bảng, bạn có thể sắp xếp theo chỉ số cột

var data_table = $('#data-table').DataTable(); 
data_table.order([7,'desc']).draw(); 

Hy vọng điều này sẽ hữu ích.

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