0

根据要求,我们将从 api 获取值,并且在加载 Ag Grid 时应预先选择这些行。


this.columnDefs = [
      {
        headerName: 'Option Code',
        field: 'Option',
        maxWidth: 125,
        checkboxSelection: true,
      }
];

this.addOption = ["000005","000010","000026"]; // External data 

电网就绪:

onGridReady(params) { 
    this.gridApi = params.api; 
    this.gridColumnApi = params.columnApi; 
    this.gridApi.getRenderedNodes().forEach(function (node:any) {
        node.setSelected(this.addOption.includes(
            node.data.Option.toString()
        )); 
     }); 
}

我们正在尝试下面的代码来预先选择默认复选框,但它不起作用。

selectAllAmerican(val) { 
    this.gridApi.getRenderedNodes().forEach(function (node:any) {
        node.setSelected(val.includes(node.data.Option.toString()));
    }); 
} 

当我们在 Get 按钮下使用时,上面的代码是有效的。请审查和指导我们。

4

2 回答 2

0

根据要求,我们将从 api 获取值,并且在加载 Ag Grid 以及当用户选择/取消选择复选框需要执行任务时,应预先选择这些行。列定义 this.columnDefs = [ { headerName: 'Option Code', field: 'Option', maxWidth: 125, checkboxSelection: true, } ];

网格定义:

  <ag-grid-angular
  #agGrid
  style="width: 375px; height: 100%; display: inline-block;"
  *ngIf="Flag12"
  id="myGrid"
  class="userclass"
  [enableBrowserTooltips]="true"
  [columnDefs]="columnDefs"
  [defaultColDef]="defaultColDef"
  [suppressRowClickSelection]="true"
  [rowSelection]="rowSelection"
  [rowDeselection]="true"
  [rowData]="rowData"

(rowSelected)="onRowSelected($event)"

  (gridReady)="onGridReady($event)"
  >

this.addOption = ["000005","000010","000026"]; // 外部数据

两个问题: 1.如何根据外部变量 this.addOption 预选复选框。2. rowSelected :在 pr-select 的情况下(当我们从逻辑中启用复选框时),rowSelected 应该禁用并且当用户选择/取消选择复选框 rowSelected (需要执行一些逻辑),由于逻辑它可能会启用其他复选框从后端。所以它应该在用户选择和取消选择时工作。

请指导我。

于 2020-07-14T18:32:09.247 回答
0

回答晚了,我遇到了类似的问题,解决方案是在 rowData 或网格数据准备好时放入下面的行,也可以在 GridReady 方法中。所以在这两个地方都提到这一点。

this.gridApi?.forEachNode(function (node) {
                        node.setSelected(true);
            });
于 2021-06-04T17:37:47.617 回答