Angular-Ag-Grid:如何禁用特定行单元格中的复选框或无线电输入,在数据完全加载后,在另一个事件上?<



我在禁用一个动态加载的复选框时遇到了问题。

我使用一个带有自定义组件的CellRendererFramework来加载基本的网格数据,下面是我的columnDef。我在agg -grid外有一个事件,当我选中那个复选框时,我正在向网格插入动态行数据。当这样做时,如果行数据的状态列值为false,那么我必须禁用该特定行的复选框和单选按钮。

在这里,我能够找到新行的rowNodeId,但我无法使复选框和单选禁用:

{ headerName: 'abc', field: 'abc'},
{ headerName: 'State', field: 'state'},
{
headerName: 'check Case',
field: 'checkCase',
cellRendererFramework: GridCheckboxRendererComponent,
onCellValueChanged: (event: CellValueChangedEvent) => {
this.updateCaseCheck(event);
},
cellRendererParams: {
disableCaseCheckbox: this.disableWhenCaseisArchived
}
},
{
headerName: 'Make Default',
field: 'makeDefault',
cellRendererFramework: GridRadioButtonRendererComponent,
onCellValueChanged: (event: CellValueChangedEvent) => {
this.setDefault(event);
},
cellRendererParams: {
disableDefaultRadio: this.disableWhenCaseisArchived
}
}

我尝试使用自定义单元渲染器参数,但它只在网格实例化时设置。

我正在使用gridApi设置数据,像下面和caseRowData将有以前和后事件的新数据:

this.gridApi.setRowData(this.caseRowData);

在我的自定义网格复选框和无线电组件在agOninit我映射这个自定义渲染器值和相同的映射到禁用属性上的复选框和无线电分别输入。

任何帮助都非常感谢。

在cellRendererFramework组件中,即GridCheckboxRendererComponentGridRadioButtonRendererComponent,您可以使用params

中的data属性
class CellRenderer implements ICellRendererParams {
public disableCheckbox: boolean;

agInit(params: ICellRendererParams): void {
this.disableCheckbox= params.data.state;
}
}

现在你可以使用这个disableCheckbox变量来禁用html的属性映射。

最新更新