Я реалізував гладку сітку з власною моделлю вибору, а також користувацьким плагіном вибору прапорців. Я також додав прапорці на рівні групи, щоб дозволити перемикання вибору на верхньому рівні. Однією з моїх вимог є те, що згорнуті угруповання все ще можна вибрати через будь-які батьківські рівні групування.
Мій камінь спотикання, здається, полягає в тому, що я не можу зрозуміти, як вибрати рядки, які наразі не видно у групі. Гладка сітка підтримує набір візуально вибраних елементів, тоді як представлення даних сітки підтримує повний набір вибраних елементів, видимих чи ні. Однак я не можу зрозуміти, як з'єднати дані, натиснувши прапорець у групі згорнутого рядка.
Я налаштовую свою сітку так:
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 ніколи не вирішується для прихованих рядків і тому ніколи не вибирається. Я намагався розгорнути групу при натисканні, а потім вирішити рядки, що працює, але коли група згортається згодом, у сітці вибираються неправильні рядки.
будь-яка допомога буде дуже вдячна!
деякі примітки:
- якщо я виділяю рядок і згортаю його групу, елемент зберігає свій вибір
- існує інша гілка гладкої сітки, яка має однаково нефункціональну реалізацію вибору групи