Angular 如何在角度项目中自动刷新ag网格中的单元格

Angular 如何在角度项目中自动刷新ag网格中的单元格,angular,ag-grid,ag-grid-ng2,Angular,Ag Grid,Ag Grid Ng2,这是我的项目: 我从下拉菜单中选择一个选项。我点击“刷新网格”按钮,它会刷新网格。因此,第二列将使用从第一列中选择的数值进行更新 还有一个小问题:当网格刷新时,它会将下拉菜单恢复为默认值。这可以通过只刷新第二列来避免 我想要的是:第二列自动刷新,而不必使用按钮 第一列有一个自定义单元格渲染器组件,这一事实使我很难找到解决方案。 因为刷新网格的方法只能写入网格组件中。原因如下: grid.component.html 刷新网格 grid.component.ts代码: /**此代码负责在值更改

这是我的项目:

我从下拉菜单中选择一个选项。我点击“刷新网格”按钮,它会刷新网格。因此,第二列将使用从第一列中选择的数值进行更新

还有一个小问题:当网格刷新时,它会将下拉菜单恢复为默认值。这可以通过只刷新第二列来避免

我想要的是:第二列自动刷新,而不必使用按钮

第一列有一个自定义单元格渲染器组件,这一事实使我很难找到解决方案。
因为刷新网格的方法只能写入网格组件中。原因如下:

grid.component.html
刷新网格
grid.component.ts代码:
/**此代码负责在值更改后刷新网格*/
私有网格API;
私有网格API;
onGridReady(参数){
this.gridApi=params.api;
this.gridColumnApi=params.columnApi;
params.api.sizeColumnsToFit();
}
公共刷新列(){
常量参数={force:true};
this.gridApi.refreshCells(params);
}
/**此代码负责在值更改后刷新网格*/
注意onGridReady方法吗?这是刷新过程中的关键。并且,只有在grid.component.ts中定义了,才能将其绑定到gridReady。即:我无法从customCellRenderer组件启动刷新

customCellRenderer.component.html:


1-Très不可能 2-Peu概率 3-可能 4-可能
customCellRenderer.component.ts中的相关代码:
消息:数字;
构造函数(私有数据:DataService){}
恩戈尼尼特(){
}
参数:任何;
agInit(参数:任意):无效{
this.params=params;
}
proba=5;
公共更新程序(t){
如果(t.value==“1-不可能”){
this.data.changeMessage(1)
这个。proba=1;
}否则,如果(t.值==“2-可能的Peu”){
this.data.changeMessage(2)
这个。概率=2;
}else if(t.value==“3-可能”){
this.data.changeMessage(3)
}否则如果(t.value=='4-可能'){
this.data.changeMessage(4)
}
}
总而言之,当刷新代码(和方法)必须位于grid.component.ts中时,如何根据在第一列中选择的值(因此来自自定义单元渲染器组件)自动刷新第二列

例如:我可以启动一个方法从自定义单元格渲染器刷新网格吗?

谢谢你抽出时间

我找到了一种愚蠢的方法来解决这个问题,在我们等待可靠的答案时,你可以使用它。
只需在网格定义中添加以下内容:

(cellMouseOut)=“RefreshRisqueBrutColumn()”

我找到了一种愚蠢的方法来解决这个问题,你可以在我们等待可靠答案时使用。
只需在网格定义中添加以下内容:
(CellMousOut)=“RefreshRiskueBrutColumn()”

我无法从customCellRenderer组件启动刷新

这是不对的<单元格编辑器的
agInit
方法的code>params属于
ICellEditorParams
并包含
api
类型的
GridApi
属性。因此,您基本上可以在单元编辑器中拥有一个函数,该函数可以调用
params.api.refreshCells()
。我不知道这是否能解决你的问题,但我想指出那个错误的说法。ag grid中的大多数回调参数都包含这些属性,而不仅仅是
GridReady

我无法从customCellRenderer组件启动刷新


这是不对的<单元格编辑器的
agInit
方法的code>params属于
ICellEditorParams
并包含
api
类型的
GridApi
属性。因此,您基本上可以在单元编辑器中拥有一个函数,该函数可以调用
params.api.refreshCells()
。我不知道这是否能解决你的问题,但我想指出那个错误的说法。ag grid中的大多数回调参数都包含这些属性,而不仅仅是
GridReady

我应该在customCellRenderer.component.ts中注入grid.component.ts吗。这样我就可以从customCellRenderer.component.ts启动刷新方法了?这显然会导致循环依赖并使应用程序崩溃,这很有意义:检测到循环依赖中的警告:src\app\drop-down cell renderer\drop-down cell-renderer.component.ts->src\app\app.component.ts->src\app\drop-down-cell-renderer\drop-down-cell-renderer.component.ts是否应在customCellRenderer.component.ts中插入grid.component.ts。这样我就可以从customCellRenderer.component.ts启动刷新方法了?这显然会导致循环依赖并使应用程序崩溃,这很有意义:检测到循环依赖中的警告:src\app\drop-down cell renderer\drop-down cell-renderer.component.ts->src\app\app.component.ts->src\app\drop-down-cell-renderer\drop-down-cell-renderer.component.ts