1

我正在使用 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
}
4

3 回答 3

1

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

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

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

于 2014-09-24T02:32:54.517 回答
0

你是否也测试过:

//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
}

?

于 2013-10-14T20:38:47.097 回答
0

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

于 2014-09-09T14:45:32.870 回答