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

时间:2015-09-03 21:50:56

标签: javascript jquery slickgrid

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

我的问题是,一旦我重新排序一行(例如将第3行放在第1行上方),我就无法对条目进行排序了。如果列名为“date”并且我单击该列,则不会发生任何事情。另一方面,如果我手动重新排序行然后按列排序,它就可以工作。

我不介意“按列排序”会破坏我的手动订单。我只想保留选项,在重新排序后按列对其进行排序。

任何提示都表示赞赏。

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

1 个答案:

答案 0 :(得分:1)

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

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

//Set updated data in DataView
dataView.setItems(data);

//Clear sort columns
grid.setSortColumns([]);