ag-grid 将列标题设置为复选框,并选择全部或取消选择所有列,而不是只选择组

Wil*_*Yun 8 javascript angularjs ag-grid

使用 ag-grid 时,我想将第一个列标题设置为复选框,并对除组之外的所有行执行全选或取消全选列操作。

小智 8

如果有人来这里寻找答案,这个功能已经在 ag-grid 中,只需将其放入headerCheckboxSelection: true您的列的定义中即可。

请参阅此处的文档


kus*_*old 5

在网格选项中:

angularCompileHeaders: true
Run Code Online (Sandbox Code Playgroud)

在定义列的位置,定义第一列,如下所示:

{
   field: 'RowSelect',
   headerName: ' ',
   checkboxSelection: true,
   suppressMenu: true,
   suppressSorting: true,
   headerCellRenderer: selectAllRenderer
 },
Run Code Online (Sandbox Code Playgroud)

在该文件中定义渲染器:

function selectAllRenderer(params) {
    var cb = document.createElement('input');
    cb.setAttribute('type', 'checkbox');

    var eHeader = document.createElement('label');
    var eTitle = document.createTextNode(params.colDef.headerName);
    eHeader.appendChild(cb);
    eHeader.appendChild(eTitle);

    cb.addEventListener('change', function (e) {
        if ($(this)[0].checked) {
            params.api.selectAll();
        } else {
            params.api.deselectAll();
        } 
    });
    return eHeader; 
}
Run Code Online (Sandbox Code Playgroud)

请注意,创建者目前正在努力使其成为一项功能,但这是当前的解决方法。在此处查看更新和更通用的非角度版本:selectAll 功能讨论

  • 你可以为此提供一个小提琴或 plnkr 吗?我正在尝试使用 ag-grid-vue,但没有成功 (2认同)