【问题标题】:programmatically change selected rows in a slickgrid以编程方式更改 slickgrid 中的选定行
【发布时间】:2013-12-23 22:01:55
【问题描述】:

使用 slickgrid,我需要动态选择/取消选择行,这是我的代码,它似乎可以工作,但听起来确实有点不理想,有什么更聪明的方法吗?

// turn records checkbox on or off depending on 'checked'

function set_checkbox (record, checked) {  
   var id = record[primary_key];
   var index = dataview.getIdxById(id);
   var selectedRows=this.slick_grid.getSelectedRows();
   if (checked) // add index in current list
      selectedRows=selectedRows.concat(index);
   else // remove index from current list
      selectedRows=selectedRows.filter(function(idx) {return idx!=index;});
   this.slick_grid.setSelectedRows(selectedRows);
}   

在此处使用此选择模型初始化网格:

grid.setSelectionModel (new Slick.RowSelectionModel ({selectActiveRow: false}));

【问题讨论】:

  • 你能找到更好的方法吗?

标签: selection slickgrid


【解决方案1】:

如果行可见,则上一个答案是正确的。但是,程序化选择通常意味着您对相同数据有不同的视图,并且如果包含所选项目的行被隐藏(由于过滤、组被折叠等),那么您确实需要更深入地挖掘并修补 slickgrid 才能选择按 ID 行。希望这会有所帮助。

【讨论】:

  • 请举例说明您的意思;照原样,这个答案是不完整的,不是很有帮助。
【解决方案2】:

使用网格辅助方法 setSelectedRows(rowsArray) 非常简单

完整的描述在这里:

https://github.com/mleibman/SlickGrid/wiki/Handling-selection

【讨论】:

  • 需要注意的是,“setSelectedRows”没有设置“activeRow”属性,因此也没有为行设置活动的css类。您显然必须为此调用 setActiveCell。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 2016-11-05
  • 1970-01-01
相关资源
最近更新 更多