jQuery dataTable 不会对新数据进行排序

jQuery dataTable isn't sorting new data

本文关键字:数据 排序 dataTable 新数据 jQuery      更新时间:2023-09-26

我正在使用jQuery dataTable库,遇到了问题。 我有一些允许更改表单元格值的事件处理程序。 发生此类更改后,我单击包含新更改数据的列的列标题。 它重新访问所有行,但是当我第一次单击该列时,具有新数据的行仍会根据其原始值进行排序。 以下是我正在使用的两个函数。

因此,fnDraw() 没有达到预期的效果。

//called once, after page load completes
function drawTable()
{
    $('#mytable').dataTable({"bFilter": false,
                                       "bSort": true,
                                       "bInfo": false,
                                       "bPaginate": false,
                                       "bDestroy": true});
}
//called each time a table cell value is changed
function initTable()
{ 
    var oTable = $('#mytable').dataTable();
    oTable.fnDraw();
    //fnDraw is not having the desired effect
}

我从DataTables网站上找到了一个活的例子,他们有一个直接处理这类问题的例子。 此外,它们还展示了如何对包含文本和数字的选择列表和输入进行实时排序。

http://www.datatables.net/examples/plug-ins/dom_sort.html

如果有更好的答案,我很乐意看看。 目前,我觉得他们的榜样是要走的路。

您是否还测试过:

//called each time a table cell value is changed
function initTable()
{ 
    var oTable =  $('#mytable').dataTable({"bFilter": false,
                                   "bSort": true,
                                   "bInfo": false,
                                   "bPaginate": false,
                                   "bDestroy": true});
    oTable.fnDraw();
    //fnDraw is not having the desired effect
}

除了@jacouh重新初始化表的解决方案外,还可以尝试在数据表选项中设置"bStateSave": true。这应该让数据表设置一个cookie来记住用户的排序偏好。