我已经从数据库检索到已排序的数据,有时需要重置回初始加载顺序。我尝试了这个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();
如何使数据表格在点击时显示从数据库检索到的原始加载顺序?
按照要求,这基本上是正常工作的基本代码,我可以找到一个长路来添加另一列进行排序,但是如果可以在datatables中轻松重置顺序,我感觉我正在过度复杂化添加另一个仅用于排序的字段。这不可能吗?
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);
}
});