【问题标题】:SlickGrid: sorting after reordering doesn't workSlickGrid:重新排序后排序不起作用
【发布时间】:2015-09-03 21:50:55
【问题描述】:

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

我的问题是,一旦我对一行重新排序(例如,将第 3 行放在第 1 行上方),我就无法再对条目进行排序了。如果一列被命名为“日期”并且我单击该列,则没有任何反应。另一方面,如果我手动重新排序行然后按列排序,它可以工作。

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

感谢任何提示。

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

【问题讨论】:

    标签: javascript jquery slickgrid


    【解决方案1】:

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

    【讨论】:

    • 非常感谢您的帮助!
    猜你喜欢
    • 2015-05-04
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 2013-05-12
    • 2013-09-11
    • 2014-03-02
    相关资源
    最近更新 更多