在SlickGrid中,您可以启用行重新排序(拖放)。见http://mleibman.github.io/SlickGrid/examples/example9-row-reordering.html
我的问题是,一旦我重新排序一行(例如将第3行放在第1行上方),我就无法对条目进行排序了。如果列名为“date”并且我单击该列,则不会发生任何事情。另一方面,如果我不手动重新排序行然后按列排序,它就可以工作。
我不介意“按列排序”会破坏我的手动订单。我只想保留选项,在重新排序后按列对其进行排序。
任何提示都表示赞赏。
(我正在使用SlickGrid,因为它有一个很好的分支,其中包含粘性行/列。我没有在其他地方找到此功能,所以这是我唯一的选择)
答案 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([]);