当使用ag-grid时,我想将第一列标题设置为一个复选框,然后对所有行而不是仅组进行全选或取消全列操作。

最佳答案

在gridOptions中:

angularCompileHeaders: true


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

{
   field: 'RowSelect',
   headerName: ' ',
   checkboxSelection: true,
   suppressMenu: true,
   suppressSorting: true,
   headerCellRenderer: selectAllRenderer
 },


在该文件中定义渲染器:

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;
}


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

09-25 19:30