jquery - 如何对数据表中的特定列进行自定义排序?
问题描述
我已经加载了带有 ajax 响应数据的服务器端数据表,并且我有一列显示:成员的时间,格式为(例如 5 天、11 小时、12 分钟)。所以我想根据天数、小时数和分钟数对该列进行排序。我无法向您展示整个代码,因为它是机密的,但我向您展示了 ajax 调用和表格数据,如下所示:-
这是显示时间的列,我想根据天、小时和分钟进行升序和降序排序。
<script>
$('table').DataTable({
processing: true,
serverSide: true,
responsive: true,
searching: true,
"ajax": {
url : "<?php echo site_url("getStatus") ?>",
"data":function(d){
}
},
"columnDefs": [
{
"render": function ( data, type, full, meta) {
//what should i have to do here for custom sorting. i have tried different ways but it won't work so i have removed that code.
},
}]
});
解决方案
@Divyarajsinh,
我正在使用laravel,我之前遇到过同样的问题。我希望它对你有帮助。
通过添加 aoColumns 和 order 来编辑刀片文件脚本
"processing": true,
"serverSide": true,
"searching": false,
'iDisplayLength': 10,
"bFilter" : false,
"bLengthChange": false,
"aoColumns": [
{ "bSortable": true }
],
"order": [
[0, "desc" ]
],
"ajax": {
"url": "{!! route("arrayList") !!}",
"type": "POST",
"jsonpCallback": 'jsonCallback',
"dataType": "jsonp"
}
路由文件
Route::post('arrayList', 'TestController@arrayList')->name('arrayList');
像这样编辑你的数组:
$arr=[
"4 days, 20 hours, 29 minutes",
"0 days, 00 hours, 14 minutes",
"4 days, 21 hours, 12 minutes",
"0 days, 00 hours, 41 minutes",
"4 days, 21 hours, 23 minutes"
];
然后将订单请求输入您的控制器并使用排序数组功能。
$order=$request->order;
if($order[0]['dir']=='desc'){
arsort($arr);
} elseif($order[0]['dir']=='asc'){
asort($arr);
}
推荐阅读
- python - 如果两个类扩展不同的类,如何避免重复代码
- python-3.x - 输入函数的正确上下文使用是什么?它是否具有定义函数的任何功能?
- html - CSS位置:固定+混合混合模式:差异问题
- javascript - 如何访问从项目到项目可变的嵌套 JSON 对象
- sql - 我需要将带有内部连接的 SQL 查询转换为 Entity Framework 中的 Linq
- debugging - 如何调试安卓应用程序?
- c++ - “虚拟内存耗尽:无法分配内存”仅在使用调试标志编译时
- python - Pickling Networkx 的 edge_subgraph 引发错误
- python - 一列中一个元素的条件复制并应用于python中的相应行
- assembly - 如何从 nasm 的数据部分中只写入一个字符串?