Jul*_*ien 10 javascript jquery slickgrid typescript
我已经实现了一个带有自定义选择模型和自定义复选框选择插件的光滑网格。我还添加了组级别复选框以允许在顶层切换选择。我的要求之一是仍然可以通过任何父级分组复选框选择折叠分组。
我的绊脚石似乎是我不知道如何选择当前在组中不可见的行。光滑的网格维护可视化选择的项目集,而网格数据视图维护完整的选定项目集,无论可见与否。但是,当单击折叠行的组复选框时,我无法弄清楚如何通过管道输入数据。
我正在像这样配置我的网格:
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);
Run Code Online (Sandbox Code Playgroud)
要点要自定义插件,太长时间,包括在这里
特别是,如果你看看行57的slick.checkboxselectionmodel:
$.each(dataItem.rows, function(index, groupRow) {
var groupRowIndex = _self._grid.getData().getRowById(groupRow.id);
if (groupRowIndex) {
selection.push(groupRowIndex);
}
});
Run Code Online (Sandbox Code Playgroud)
groupRowIndex 永远不会为隐藏行解析,因此永远不会被选中。我试图在单击时展开组,然后解析行,这是可行的,但是当组随后折叠时,在网格中选择了错误的行。
任何帮助将不胜感激!
一些注意事项: