Tôi đang cố gắng đặt loại mặc định thành cột thứ hai trong jquery datatable của tôi. Nó theo mặc định sắp xếp theo chỉ số 0. Tôi đang sử dụng cú pháp "aaSorting": [[ 1, "asc" ]]
nhưng nó làm nổi bật cột mà tôi không muốn khi tải ban đầu. Làm thế nào tôi có thể đặt loại mặc định của một cột cụ thể mà không làm nổi bật cột như thể không có sắp xếp nào được tham gia và cột chỉ mục 0 đang được sử dụng.jquery datatables mặc định sắp xếp
Trả lời
Có một vài lựa chọn:
Ngay sau khi initialising DataTables, loại bỏ các lớp sắp xếp trên các yếu tố TD trong tbody.
Vô hiệu hóa các lớp sắp xếp bằng cách sử dụng http://datatables.net/ref#bSortClasses. Vấn đề với điều này là nó sẽ vô hiệu hóa các lớp sắp xếp cho các yêu cầu sắp xếp người dùng - có thể hoặc không thể là những gì bạn muốn.
Để máy chủ của bạn xuất bảng theo thứ tự sắp xếp theo yêu cầu của bạn và không áp dụng sắp xếp mặc định trên bảng (
aaSorting:[]
).
Vì vậy, có vẻ như không có giải pháp liền mạch nào được tích hợp vào API của chúng. –
Không. Nếu bạn muốn điều này như là một lựa chọn cốt lõi, nó sẽ cần phải được thêm vào DataTables - đây không phải là yêu cầu mà tôi đã gặp trong khi phát triển DataTables, nhưng nó chắc chắn là thứ tôi sẽ để ý và nếu nó chứng minh là một yêu cầu phổ biến và tôi chắc chắn sẽ thêm nó vào. Cho đến lúc đó ba tùy chọn ở trên áp dụng :-) –
Đề nghị # 3 ở trên đã làm điều đó cho tôi. Nó dễ dàng hơn nhiều để vô hiệu hóa việc sắp xếp và chỉ xử lý nó phía máy chủ cho các kết quả ban đầu. –
Bạn có thể sử dụng chức năng fnSort, vui lòng xem chi tiết tại đây:
Đây là mã thực tế nào đó ...
$(document).ready(function()
{
var oTable = $('#myTable').dataTable();
// Sort immediately with column 2 (at position 1 in the array (base 0). More could be sorted with additional array elements
oTable.fnSort([ [1,'asc'] ]);
// And to sort another column descending (at position 2 in the array (base 0).
oTable.fnSort([ [2,'desc'] ]);
});
Để không có cột được đánh dấu, sửa đổi CSS như sau:
table.dataTable tr.odd td.sorting_1 { background-color: transparent; }
table.dataTable tr.even td.sorting_1 { background-color: transparent; }
Điều này cũng hoạt động như một cách tiếp cận để sắp xếp cột đầu tiên như giảm dần. Cảm ơn! – veeTrain
+1 bạn đã cứu tôi rất nhiều đau khổ và đau khổ !! Đây là giải pháp dễ nhất cho tôi. Các tài liệu Datatables không phải là rất giải thích và khó hiểu. Chúc mừng. – TheOptimusPrimus
@TheOptimusPrimus Tôi đồng ý - sẽ rất tuyệt nếu họ chia nhỏ những điều đơn giản như thế này tốt hơn :) – theJerm
Tùy chọn tốt nhất là tắt phân loại và chỉ nạp dữ liệu với thứ tự sắp xếp mong muốn (từ cơ sở dữ liệu hoặc nguồn khác). Hãy thử thêm điều này vào 'datatable' của bạn: "bSort": false
Datatables hỗ trợ dữ liệu HTML5- * thuộc tính cho chức năng này.
Nó hỗ trợ nhiều cột trong thứ tự sắp xếp (đã ghi bàn 0-based)
<table data-order="[[ 1, 'desc' ], [2, 'asc' ]]">
<thead>
<tr>
<td>First</td>
<td>Another column</td>
<td>A third</td>
</tr>
</thead>
<tbody>
<tr>
<td>z</td>
<td>1</td>
<td>$%^&*</td>
</tr>
<tr>
<td>y</td>
<td>2</td>
<td>*$%^&</td>
</tr>
</tbody>
</table>
Bây giờ jQuery của tôi chỉ đơn giản là $('table').DataTables();
và tôi nhận được cột thứ hai và thứ ba của tôi được sắp xếp trong desc trật tự/asc.
Dưới đây là một số thuộc tính tuyệt vời khác cho <table>
mà tôi tìm thấy bản thân mình tái sử dụng:
data-page-length="-1"
sẽ thiết lập độ dài trang to All (vượt qua 25 đối với chiều dài trang 25) ...
data-fixed-header="true"
... Hãy a guess
Tôi cũng gặp sự cố này. Tôi đã sử dụng tùy chọn stateSave
và điều này đã gây ra sự cố này.
Xóa tùy chọn này và sự cố được giải quyết.
này sử dụng nó làm việc cho tôi: "đặt hàng": [[1, "ASC"]],
này đã làm việc cho tôi:
jQuery('#tblPaging').dataTable({
"sort": true,
"pageLength": 20
});
Chỉ Bao gồm đoạn mã sau:
$(document).ready(function() {
$('#tableID').DataTable({
"order": [[ 3, "desc" ]]
});
}
);
bài viết tham khảo đầy đủ với ví dụ:
https://datatables.net/examples/basic_init/table_sorting.html
bạn có nghĩa là bạn không muốn đánh dấu cho mọi hành động sắp xếp? Nếu vậy, chỉ cần thay đổi css cho cột được sắp xếp thành cùng màu với màu nền cột ban đầu của bạn – shennyL
Tôi muốn các cột thay đổi màu sắc trên phân loại rõ ràng, nhưng trên một số thứ như phân trang, tôi muốn nó được phân trang theo cột 1 mà không có nó thể hiện sự bùng nổ bằng sự thay đổi cột. Các loại phân trang theo cột 0 mà không thay đổi màu cột khi bạn đi đến trang 2. –