カスタム選択モデルとカスタムチェックボックス選択プラグインを備えた滑らかなグリッドを実装しました。また、グループレベルのチェックボックスを追加して、トップレベルでの選択の切り替えを可能にしました。私の要件の1つは、折りたたまれたグループ化が親レベルのグループ化チェックボックスを介して引き続き選択可能であることです。
私の障害は、現在グループに表示されていない行を選択する方法を理解できないことです。滑らかなグリッドは視覚的に選択されたアイテムのセットを保持し、グリッドデータビューは選択されたアイテムの完全なセットを表示または非表示に維持します。しかし、折りたたまれた行のグループチェックボックスをクリックしたときにデータにパイプする方法がわかりません。
私はグリッドを次のように構成しています:
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
あなたがラインを見れば、具体的57
にslick.checkboxselectionmodel
:
$.each(dataItem.rows, function(index, groupRow) {
var groupRowIndex = _self._grid.getData().getRowById(groupRow.id);
if (groupRowIndex) {
selection.push(groupRowIndex);
}
});
groupRowIndexは非表示の行では解決されないため、選択されることはありません。クリックしたときにグループを展開し、行を解決しようとしましたが、機能しましたが、後でグループを折りたたむと、グリッドで間違った行が選択されました。
どんな助けでも大歓迎です!
いくつかのメモ:
- 行を選択してそのグループを折りたたむと、アイテムはその選択を保持します
- 同様に機能しないグループ選択の実装を持つスリックグリッドの別のブランチがあります