Tôi đã triển khai một lưới khéo léo với một mô hình lựa chọn tùy chỉnh cũng như một plugin lựa chọn hộp kiểm tùy chỉnh. Tôi cũng đã thêm các hộp kiểm cấp độ nhóm để cho phép chuyển đổi lựa chọn ở cấp cao nhất. Một trong những yêu cầu của tôi là các nhóm được thu gọn vẫn có thể được lựa chọn thông qua bất kỳ hộp kiểm nhóm nhóm phụ huynh nào.
Sự vấp ngã của tôi dường như là tôi không thể tìm ra cách chọn các hàng hiện không hiển thị trên nhóm. Lưới bóng mượt duy trì tập hợp các mục được chọn trực quan trong khi chế độ xem dữ liệu lưới duy trì toàn bộ các mục đã chọn, có thể nhìn thấy hoặc không. Tuy nhiên, tôi không thể tìm ra cách chuyển dữ liệu khi nhấp vào hộp kiểm nhóm của hàng bị sập.
Tôi đang cấu hình lưới của mình như vậy:
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 để bổ sung tùy chỉnh, quá dài để bao gồm ở đây
Cụ thể, nếu bạn nhìn vào dòng 57
của slick.checkboxselectionmodel
:
$.each(dataItem.rows, function(index, groupRow) {
var groupRowIndex = _self._grid.getData().getRowById(groupRow.id);
if (groupRowIndex) {
selection.push(groupRowIndex);
}
});
groupRow Index không bao giờ được giải quyết cho các hàng ẩn và do đó không bao giờ được chọn. Tôi đã cố gắng mở rộng nhóm khi nhấp vào, sau đó giải quyết các hàng hoạt động nhưng khi nhóm bị thu gọn sau đó, các hàng sai được chọn trong lưới.
Mọi sự trợ giúp sẽ rất được trân trọng!
một số lưu ý:
- nếu tôi chọn một hàng và thu gọn nhóm của nó, mục đó sẽ giữ lại lựa chọn của nó
- có một nhánh khác của lưới trơn có triển khai lựa chọn nhóm không có chức năng như nhau