SlickGrid:重新排序后的排序不起作用

SlickGrid: sorting after reordering doesn't work

本文关键字:排序 不起作用 新排序 SlickGrid      更新时间:2023-09-26

在SlickGrid中,您可以启用行重新排序(拖放)。见http://mleibman.github.io/SlickGrid/examples/example9-row-reordering.html

我的问题是,一旦我重新排序一行(例如将第3行放在第1行之上),我就不能再对条目进行排序了。如果列名为"date",我单击该列,什么也不会发生。另一方面,如果我不手动重新排序行,然后按列排序,它工作。

我不介意"按列排序"会破坏我的手动排序。我只是想在重新排序后保留按列排序的选项。

任何提示都很感谢。

(我正在使用SlickGrid,因为有一个很好的分支,它具有粘性行/列。我没有在其他地方找到这个功能,所以这是我唯一的选择)

手动重新排序网格时,执行订阅moveRowsPlugin.onMoveRows的函数。该函数调用grid.setData(data)将重新排序的行更新到网格上。调用grid.setData(data)将覆盖DataView并直接在网格上设置数据。因此,对DataView所做的更新(例如排序)不再反映在网格上。

为了解决这个问题,在订阅moveRowsPlugin.onMoveRows的函数中将grid.setData(data)更改为dataView.setItems(data)(内联JavaScript的第364行)。我还建议清除排序字段,以便删除排序指示符。

//Set updated data in DataView
dataView.setItems(data);
//Clear sort columns
grid.setSortColumns([]);