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

SlickGrid: sorting after reordering doesn't work

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

我的问题是,一旦我重新排序一行(例如,将第 3 行放在第 1 行之上),我就无法再对条目进行排序。如果一列名为 "date" 并且我单击该列,则没有任何反应。另一方面,如果我 not 手动重新排序行,然后按列排序,它会起作用。

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

如有任何提示,我们将不胜感激。

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

当网格被手动重新排序时,订阅到 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([]);