javascript - Angular-Ag-Grid:如何在数据完全加载后和另一个事件发生后禁用特定行单元格中的复选框或单选输入?
问题描述
我无法禁用在操作时动态加载的复选框。
我正在使用带有自定义组件的 CellRendererFramework 来加载基本网格数据,下面是我的 columnDef。当我选中将动态行数据插入网格的复选框时,我在 ag-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 组件中,即,GridCheckboxRendererComponent
或者GridRadioButtonRendererComponent
您可以使用 params 中的 data 属性
class CellRenderer implements ICellRendererParams {
public disableCheckbox: boolean;
agInit(params: ICellRendererParams): void {
this.disableCheckbox= params.data.state;
}
}
现在您可以使用此disableCheckbox
变量来禁用 html 上的属性映射。
推荐阅读
- python - Python基于键合并嵌套对象
- flutter - 不支持的操作:Infinity 或 NaN toInt
- c++ - 套接字不发送数据
- javascript - 是否可以使用 ES6 模块导入 .css 文件?
- python - Pandas df 迭代寻找重复项
- reactjs - 处理更改输入 REACTJS + TypeScript 错误
- django - ValueError: int() 以 10 为底的无效文字:'favicon.ico'
- c# - ASP.NET Core 标识:如何重新定义禁止处理
- javascript - 如何在文本中间实时显示输入值
- azure - 在 CI 中无头运行时输出 cypress 浏览器日志消息