【发布时间】:2020-05-20 11:55:27
【问题描述】:
我已经实现了一个带有自定义选择模型的光滑网格以及一个自定义复选框选择插件。 我还添加了组级别复选框以允许在顶层切换选择。 我的要求之一是折叠的分组仍然可以通过任何父级分组复选框进行选择。
我的绊脚石似乎是我不知道如何选择当前在组中不可见的行。光滑的网格维护一组可视选定的项目,而网格数据视图维护完整的选定项目集,无论是否可见。但是,当单击折叠行的组复选框时,我不知道如何通过管道输入数据。
我正在像这样配置我的网格:
let checkboxSelectionModel = new Slick.CheckboxSelectionModel();
this.grid.setSelectionModel(checkboxSelectionModel);
this.grid.registerPlugin(new Slick.Data.GroupItemMetadataProvider());
let onSelectedRowIdsChanged = this.dataProvider.syncGridSelection(this.grid, true, true);
onSelectedRowIdsChanged.subscribe(
function(e: any, args: any)
{
//business logic stuff
}
);
let groupedCheckboxSelector = new Slick.GroupedCheckboxSelectColumn({
cssClass: "slick-cell-checkboxsel",
onSelectedRowIdsChangedHandler: onSelectedRowIdsChanged
});
let columns = this.grid.getColumns();
columns.unshift(groupedCheckboxSelector.getColumnDefinition());
this.grid.setColumns(columns);
this.grid.registerPlugin(groupedCheckboxSelector);
gist to custom plugins, too long to include here
具体来说,如果您查看slick.checkboxselectionmodel 的57 行:
$.each(dataItem.rows, function(index, groupRow) {
var groupRowIndex = _self._grid.getData().getRowById(groupRow.id);
if (groupRowIndex) {
selection.push(groupRowIndex);
}
});
groupRowIndex 永远不会为隐藏行解析,因此永远不会被选中。我尝试在单击时展开组,然后解析行,这可行,但是当组随后折叠时,在网格中选择了错误的行。
任何帮助将不胜感激!
一些注意事项:
【问题讨论】:
-
我会尽快提供丰厚的赏金
-
有一个打开的issue #165 用于此,我认为有帮助的是您或其他任何人只需在 6pac 前叉中提供对该问题的修复。这是一个由社区贡献的开源项目,因此多年来任何贡献都有助于使这个库变得更好。
标签: javascript jquery typescript slickgrid