Nhóm đa cấp SlickGrid với lựa chọn cấp độ nhóm


10

tình trạng lưới điện hiện tại

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 57củ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 ý:


2
tôi sẽ đưa ra một tiền thưởng chất béo càng sớm càng tốt
Julien

1
Có một vấn đề mở # 165 cho vấn đề này và tôi nghĩ điều có ích là bạn hoặc bất kỳ ai khác chỉ cung cấp cách khắc phục vấn đề đó trong ngã ba 6pac. Đây là một dự án Nguồn mở với sự đóng góp từ cộng đồng, vì vậy mọi đóng góp đều giúp làm cho lib này tốt hơn trong nhiều năm qua.
ghiscoding

Câu trả lời:


1

ý chính để bổ sung cập nhật

Một giải pháp chức năng mà tôi tự tin có thể đưa bất kỳ ai tìm kiếm hành vi tương tự đi đúng hướng, tuy nhiên, tôi không chắc chắn các plugin này sẽ hoạt động độc lập tốt như thế nào. một trong những yêu cầu của tôi là chỉ cho phép lựa chọn hàng qua hộp kiểm hàng.

một gotcha (tôi chắc chắn dễ dàng cải thiện) là hộp kiểm cấp độ nhóm vẫn cần được xác định trong toán tử định dạng nhóm của bạn

giải pháp chính cho vấn đề của tôi là mở rộng tất cả các nhóm bị sập khi thực hiện chọn / bỏ chọn ở cấp độ nhóm, thực hiện bất kỳ thói quen chọn / bỏ chọn nào, sau đó thu gọn bất kỳ nhóm mở rộng nào trước đó

BIÊN TẬP:

Điều này không thành công khi lưới có lượng dữ liệu lớn (10k hàng). Mở lại với một tiền thưởng.

Có vẻ như hiệu suất của việc phải mở rộng và sụp đổ rất nhiều nhóm gây ra vấn đề.


1
@AmerllicA câu trả lời này là quá sớm và không hoạt động với các bộ dữ liệu lớn
Julien

1
@AmerllicA không chỉ phi đạo đức khi vui lòng thích điều này vì một số tiền thưởng, mà thực tế OP đã bắt đầu tiền thưởng sau khi câu trả lời này được đăng và đó là vì OP không có kết quả như mong muốn với câu trả lời này. Vì vậy, xin vui lòng ngừng cầu xin như thế này để nhận tiền thưởng mà bạn chưa kiếm được và thay vào đó hãy thử và giúp OP giải quyết vấn đề của anh ấy nếu bạn có thời gian để đưa ra giải pháp tốt / tốt hơn.
Christos Lytras

@ChristosLytras, tôi sẽ xóa bình luận của tôi ngay lập tức, cảm ơn vì gợi ý.
AmerllicA

@ChristosLytras cũng nghĩ như vậy, không thể nói điều đó tốt hơn
Hồi giáo Elshobokshy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.