Javascript jQuery dataTable未对新数据进行排序

Javascript jQuery dataTable未对新数据进行排序,javascript,jquery,html,datatables,Javascript,Jquery,Html,Datatables,我正在使用jQuery数据表库,但遇到了一个问题。我有一些允许表单元格值更改的事件处理程序。发生这样的更改后,我然后单击包含新更改数据的列的列标题。它引用所有行,但是当我第一次单击该列时,包含新数据的行仍然按照其原始值进行排序。下面是我正在使用的两个函数 因此,fnDraw没有达到预期效果 //called once, after page load completes function drawTable() { $('#mytable').dataTable({"bFilter":

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

因此,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
}
您是否也测试过:

//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
}
?您是否也测试过:

//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重新初始化表的解决方案外,还可以尝试在DataTables选项中设置bStateSave:true。这应该让DataTables设置cookie以记住用户的排序首选项。

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

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


如果有更好的答案,我很乐意看一看。目前,我觉得他们的例子是最好的选择。

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


如果有更好的答案,我很乐意看一看。目前,我觉得他们的例子是可行的。

jacoh,这确实有效,但会带来副作用。也就是说:该表考虑了新的数据,但很好,但立即调用整个表,就像用户单击第一行一样。在initTable函数中使用bSort:false?我没有使用jQuery.dataTable插件,但我了解到fnDraw会重新绘制该表,所以调用行为似乎正常且可接受?jacoh,这确实有效,但也带来了副作用。也就是说:该表考虑了新的数据,但很好,但立即调用整个表,就像用户单击第一行一样。在initTable函数中使用bSort:false?我没有使用jQuery.dataTable插件,但我了解到fnDraw会重新绘制该表,所以调用行为似乎正常且可接受?