Có cách nào để vô hiệu hóa sắp xếp ban đầu cho DataTables jquery không?


231

Tôi đang sử dụng plugin DataTables jquery . Từ tài liệu của họ:

Nếu sắp xếp được bật, thì DataTables sẽ thực hiện sắp xếp vượt qua đầu tiên khi khởi tạo. Bạn có thể xác định (các) cột nào sắp xếp được thực hiện và hướng sắp xếp với biến này. Mảng aaSorting nên chứa một mảng cho mỗi cột được sắp xếp ban đầu chứa chỉ mục của cột và chuỗi hướng ('asc' hoặc 'desc').

Có thể kích hoạt sắp xếp nhưng vô hiệu hóa loại sắp xếp đầu tiên này khi khởi tạo? Tôi hiện đang làm phía máy chủ sắp xếp ban đầu và cần chức năng sắp xếp nhưng không cần chức năng sắp xếp ban đầu này.

Câu trả lời:


566

Vâng, tôi đã tìm thấy bộ câu trả lời "aaSorting" thành một mảng trống:

$(document).ready( function() {
    $('#example').dataTable({
        /* Disable initial sort */
        "aaSorting": []
    });
})

Đối với các phiên bản mới hơn của Datatables (> = 1.10), hãy sử dụng tùy chọn thứ tự :

$(document).ready( function() {
    $('#example').dataTable({
        /* No ordering applied by DataTables during initialisation */
        "order": []
    });
})

5
Câu trả lời này là một sự trợ giúp tuyệt vời nhưng đáng chú ý là sự nhầm lẫn tiềm ẩn gây ra. Nếu col 0 được sắp xếp trước asc và loại ban đầu này bị vô hiệu hóa thì khi người dùng lần đầu tiên nhấp vào tiêu đề của col 0, nó sẽ sắp xếp theo thứ tự asc. Đối với người dùng, điều này có vẻ như không có gì xảy ra vì họ sẽ mong đợi thứ tự desc. Một nhấp chuột thứ hai sẽ sắp xếp desc. Để làm được việc này bạn có thể đặt asSorting: ['desc', 'asc']trong aoColumnDefsđể các nhấp chuột đầu tiên là một loại desc.
tomfumb

8
Đối với các phiên bản mới hơn, thứ tự của nó: []
Darren

@tomfumb Trên thực tế, có một GUI cho thấy nó không được sắp xếp. Lần nhấp đầu tiên sẽ hiển thị Sắp xếp được kích hoạt, mặc dù các mục không thay đổi. Thế là quá đủ với tôi.
Nelson

2
Bạn cũng có thể đặt nó ở cấp độ bảng -><table data-order="[]">
Howdy_McGee

Giải pháp này sẽ không làm việc cho tôi nhưng <table data-order="[]">làm việc cho tôi.
Alper


25

Thử cái này:

$(document).ready( function () {
  $('#example').dataTable({
    "order": []
  });
});

Điều này sẽ giải quyết vấn đề của bạn.


1

Trong các tùy chọn có thể truy cập, hãy đặt cái này:

$(document).ready( function() {
  $('#example').dataTable({
    "aaSorting": [[ 2, 'asc' ]], 
    //More options ...

   });
})

Đây là giải pháp: "aaSorting": [[2, 'asc']],

2có nghĩa là bảng sẽ được sắp xếp theo cột thứ ba,
asctheo thứ tự tăng dần.


12
Câu hỏi là làm thế nào để "vô hiệu hóa sắp xếp ban đầu", chứ không phải làm thế nào để chỉ định một thứ tự sắp xếp khác. Câu trả lời này phù hợp hơn với một câu hỏi khác.
Mã hóa ngày
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.