仅从slickgrid的标题行隐藏复选框

时间:2011-07-15 16:32:18

标签: javascript slickgrid

enter image description here

代码1:

var checkboxSelector = new Slick.CheckboxSelectColumn({
                                                          cssClass: "slick-cell-checkboxsel"

                                                      });

tempColumns.push(checkboxSelector.getColumnDefinition());

代码2:

    tempGrid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow:false}));
tempGrid.registerPlugin(checkboxSelector);

我使用上面的代码显示复选框列。

如何仅从slickgrid的标题行隐藏复选框? (在图像中的红色圆圈下)

感谢。

3 个答案:

答案 0 :(得分:8)

grid.onHeaderRowCellRendered.subscribe(function (e, args) {
            if (args.column.id === '_checkbox_selector') {
                // do something if you want
            } else {
                $(args.node).empty();
                $('<input type="text">')
                    .data('columnId', args.column.id)
                    .val(columnFilters[args.column.id])
                    .appendTo(args.node);
            }
        });

答案 1 :(得分:3)

我能够做到这一点,但我的解决方案是在slick.checkboxselectcolumn.js文件中注释掉几行。据我所知,handleSelectedRowsChanged()实际上会在每次更改时使用新的<input>元素重写复选框单元格标题的内容 - 它不仅会更改checked属性。所以我已经注释掉了该函数中用于交换的行,以及其他一些在init和事件中添加复选框的行(de)选择所有行。

https://gist.github.com/1085623

可能有更好的方法来解决这个问题,但我需要尽快得到一些东西。

答案 2 :(得分:1)

您可以使用jQuery删除复选框。

$('.slick-header-columns input[type="checkbox"]').remove();

但是,标题行上的复选框允许您执行“全部检查”。你确定要删除吗?