gpt4 book ai didi

javascript - DataTables - 如何使用自定义条件对列进行排序?

转载 作者:行者123 更新时间:2023-11-30 20:05:58 26 4
gpt4 key购买 nike

在我的一个基于 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
} ]
});
});

但是我得到的顺序是:

升序:高、低、中、紧急
降序:紧急、中等、低、高


由于某些未知原因,LowHigh 执行了错误的顺序。

谁能帮我解决代码中的问题或提供解决方案?

  • 谢谢

最佳答案

阅读下一个例子:

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
} ]
});
});

关于javascript - DataTables - 如何使用自定义条件对列进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52934571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com