【问题标题】:slickgrid highlight all edited cellsslickgrid 突出显示所有已编辑的单元格
【发布时间】:2014-02-25 12:43:46
【问题描述】:

我有一个简单的 slickgrid 表,其中包含两个列,namevalue,其中 value 是可编辑的。 现在我想突出显示所有更改的值。为此,我安装了一个 onCellChange() 处理程序,它将一个类 modified 添加到当前修改的单元格中。不幸的是,我的代码将该类添加到当前编辑的单元格中,但将其从以前编辑的单元格中删除。

这是部分代码

fieldView=new Slick.Data.DataView();
fieldView.setItems(rowData);
fieldView.reSort();
fieldGrid=new Slick.Grid(("#recordGrid"), fieldView, fieldColumns, editGridOptions);
fieldGrid.onCellChange.subscribe(function(e,args) {
    var modifiedCells={};
    modifiedCells[args.row] = {"value": "modified"};
    this.setCellCssStyles("modified", modifiedCells);
});

如前所述,此代码仅将“修改”类添加到最后编辑的单元格,但将其从先前编辑的单元格中删除。如果我将 modifiedCells 设为全局,则只有第一个编辑的单元格会获得“修改”类。

我做错了什么? TIA

【问题讨论】:

    标签: jquery jquery-ui slickgrid


    【解决方案1】:

    我从未使用过SlickGrid,但我认为问题出在您传递给setCellCssStyles(key, hash)key 参数上。如文档中所述:

    key - 字符串键。将覆盖已与此键关联的所有数据。

    setCellCssStyles(key, hash) :通过调用removeCellCssStyles(key) 后跟addCellCssStyles(key, hash) 将CSS 类设置为特定的网格单元。 key 是这组样式的名称,因此您可以稍后引用它 - 例如修改或删除它。 hash 是要应用的 CSS 类的每行索引、每列名称的嵌套哈希。

    因为您的key 始终相同,所以对removeCellCssStyles(key) 的调用会删除您以前的版本信息。您可以根据行和单元格索引使 key 唯一:

    this.setCellCssStyles("modified." + args.row + "." + args.cell, modifiedCells);
    

    如前所述,我从未使用过 SlickGrid,因此可能有更好的解决方案,但这个似乎可行;)

    【讨论】:

      猜你喜欢
      • 2020-06-09
      • 2019-02-24
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 2018-12-13
      • 1970-01-01
      • 2020-02-07
      • 1970-01-01
      相关资源
      最近更新 更多