select 全部的两个 slickgrid 复选框

Two slickgrid checkboxes for select all

我在光滑的网格上有两个复选框列,目前无法让复选框正常工作。如果你检查一侧,另一侧也会被检查,如果你 select 两边都被检查。有没有办法在 slickgrid 上重载 registerplugin 以使两个复选框单独运行?

我有这样的想法。

switch (new checkboxselected().getcolumn()) {
    case checkboxApprove = grid.registerPlugin(checkboxApprove),
        break
    case checkboxDeny = grid.registerPlugin(checkboxDeny)
}

var checkboxApprove = new Slick.CheckboxSelectColumn({
    cssClass: "slick-cell-checkboxsel"
});
columns.push(checkboxApprove.getColumnDefinition());

var checkboxDeny = new Slick.CheckboxSelectColumn({
    cssClass: "slick-cell-checkboxsel"
});
columns.push(checkboxDeny.getColumnDefinition());

$(function () {
    for (var i = 0; i < 10; i++) {
        var d = (data[i] = {});
        d["title"] = "Task " + i;

    }

    grid = new Slick.Grid("#myGrid", data, columns, options);
    grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: false}));
    grid.registerPlugin(checkboxApprove);
    grid.registerPlugin(checkboxDeny);

    var columnpicker = new Slick.Controls.ColumnPicker(columns, grid, options);

    grid.render();

问题是您没有每个列的唯一列 ID。他们都使用默认 ID (_checkbox_selector),因此最终会进行交互。这是一个有根据的猜测,因为我目前无法对其进行测试。

您应该可以通过向传入的选项添加列 ID 来修复它:

var checkboxDeny = new Slick.CheckboxSelectColumn({
       columnId: "_checkbox_selector_deny"
       cssClass: "slick-cell-checkboxsel"
});