[英]DataTables - How to order a column using custom condition?
在我的一個基於 PHP 的項目中,我需要使用自定義條件或自定義順序而不是DataTable 的默認順序(升序或降序)對列進行排序。
我有四種狀態:緊急、高、中、低
我想要的自定義訂單是:
在上升期間它將是:低、中、高、緊急
在下降期間它將是:緊急、高、中、低
因此,在搜索DataTables 之后,我找到了一個在DataTables中可以正常工作的解決方案。 這是[稍微定制以滿足我的標准]:
$.fn.dataTable.ext.type.order['ticket-priority-pre'] = function ( d ) {
switch ( d ) {
case 'Low' : return 1;
case 'Medium' : return 2;
case 'High' : return 3;
case 'Urgent' : return 4;
}
return 0;
};
$( document ).ready( function() {
//initializing datatables
$('#ticketList').DataTable({
"paging" : false,
"info" : false,
"searching" : false,
"order": [[ 0, "desc" ]],
"columnDefs": [ {
"type": "ticket-priority",
"targets": -1
} ]
});
});
但我得到的命令是:
升序:高、低、中、緊急
降序:緊急、中、低、高
由於某種未知原因, Low和High的順序錯誤。
任何人都可以幫助我解決代碼中的問題或能夠提供解決方案嗎?
從下一個示例中讀取:
https://datatables.net/examples/plug-ins/sorting_auto.html
我認為,你需要這樣做:
$.fn.dataTable.ext.type.detect.unshift(
function ( d ) {
return (d === 'Low' || d === 'Medium' || d === 'High' || d === 'Urgent') ?
'ticket-priority' :
null;
}
);
$.fn.dataTable.ext.type.order['ticket-priority-pre'] = function ( d ) {
switch ( d ) {
case 'Low' : return 1;
case 'Medium' : return 2;
case 'High' : return 3;
case 'Urgent' : return 4;
}
return 0;
};
$( document ).ready( function()
{
// Initializing datatables.
$('#ticketList').DataTable({
"paging" : false,
"info" : false,
"searching" : false,
"order" : [[ 0, "desc" ]],
"columnDefs": [ {
"type": "ticket-priority",
"targets": -1
} ]
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.