我已经实现了带有自定义选择模型以及自定义复选框选择插件的平滑网格。我还添加了组级别复选框,以允许在最高级别切换选择。我的要求之一是,仍可以通过任何父级分组复选框来选择折叠分组。
我的绊脚石似乎是我无法弄清楚如何选择当前在组中不可见的行。圆滑的网格将保留视觉上选定的项目集,而网格数据视图将保留完整的选定项目集(可见或不可见)。但是,当单击折叠行的组复选框时,我不知道如何将数据传输到数据中。
我像这样配置网格:
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);
要点要自定义插件,太长时间,包括在这里
特别是,如果你看看行57
的slick.checkboxselectionmodel
:
$.each(dataItem.rows, function(index, groupRow) {
var groupRowIndex = _self._grid.getData().getRowById(groupRow.id);
if (groupRowIndex) {
selection.push(groupRowIndex);
}
});
对于隐藏的行,决不会解析groupRowIndex,因此永远不会被选中。我尝试在单击时扩展组,然后解析行,但是行有效,但是当组随后折叠时,在网格中选择了错误的行。
任何帮助将不胜感激!
一些注意事项:
- 如果我选择一行并折叠其组,则该项目将保留其选择
- 平滑网格的另一个分支具有同样非功能性的组选择实现
2
我将尽快提供丰厚的赏金
—
Julien
有一个未解决的问题#165,我认为这对您或其他任何人都可以在6pac fork中提供解决此问题的方法有所帮助。这是一个开源项目,由社区贡献,因此多年来的任何贡献都有助于使这个库变得更好。
—
ghiscoding