使用 jQuery DataTables 恢复原始排序顺序
Posted
技术标签:
【中文标题】使用 jQuery DataTables 恢复原始排序顺序【英文标题】:Restore original sort order with jQuery DataTables 【发布时间】:2016-01-17 16:19:52 【问题描述】:我从已排序的数据库中检索数据,有时我需要重置回初始加载顺序。我试过这个fnSortNeutral
,它不适用于新的 API DataTables 1.10。
我已经试过了
https://datatables.net/forums/discussion/26430/fnsortneutral-fails-with-new-api
不确定这是做什么的,因为它重置了一些东西,但绝对不是回到原来的加载顺序,而是它自己的排序顺序
$('#removesort').click( function()
table.order.neutral().draw();
);
我不能使用它,因为 Datatable 上不存在排序列以便能够使用它进行排序,排序应用于数据库查询
table
.order( [[ 1, 'asc' ], [ 2, 'asc' ]] )
.draw();
如何获取数据表以显示点击时从数据库检索到的原始加载顺序?
根据要求,这基本上是基本的正常代码,我可以找到很长的路要添加另一列进行排序,但如果可以在数据表中轻松重置顺序,我觉得添加另一个纯粹用于排序的字段过于复杂。这不可能吗?
var table = $('#example').DataTable(
order: [],
"columnDefs": [ "targets": 0, "orderable": false ],
"sAjaxSource": "external/load",
"oLanguage":
"sLoadingRecords": "",
"sEmptyTable": "No data found"
,
"fnServerData": function ( sSource, aoData, fnCallback, oSettings )
if($('#order'))
var order = $('#order').val();
aoData.push( "name": "order", "value": order );
setTimeout(function()
oSettings.jqXHR = $.ajax(
"dataType": 'json',
"type": "POST",
"url": sSource,
"data": aoData,
"timeout": 15000,
"success": fnCallback,
"complete" : function()
,
"error": function (e)
console.log(e.message);
);
,1000);
);
【问题讨论】:
您是从 Ajax 源代码还是从 html 获取数据?请发布您的表初始化代码。 您是否尝试过添加一个隐藏列,在其中插入一个表示原始排序的整数?你可以直接从 sql 生成这个值。 请展示您的原始数据源的样子。 奇怪的是我的cmets被删除了?正如我已经回答的那样,生成一个额外的列是可能的,但我想知道,如果数据表中已经存在一个简单的选项,我并不是要重新发明*** 【参考方案1】:您是否尝试在“抽奖”之后下“订单”?喜欢。
.draw();
.order( [[ 1, 'asc' ], [ 2, 'asc' ]] )
就我而言,我只是使用
.draw().order( [[ 0, 'desc' ]] );
它可以工作
【讨论】:
以上是关于使用 jQuery DataTables 恢复原始排序顺序的主要内容,如果未能解决你的问题,请参考以下文章
Datatables快速入门开发--一款好用的JQuery表格插件
使用 Jquery Datatables 对数据排序属性中的值进行自定义排序
jquery datatables如何去掉搜索框和每页显示多少条数据