gpt4 book ai didi

ag-grid - 当自定义 Cell Renderer 组件内发生更改时,如何刷新 ag-grid?

转载 作者:行者123 更新时间:2023-12-04 02:48:12 27 4
gpt4 key购买 nike

在我的网格中,我有这个专栏:
enter image description here

  {
headerName: "Generic/Specific",
field: "genericspecific",
id: "6",
cellRenderer:'genericSpecificCellRenderersComponent',
cellStyle: params => {
const colors: string[] = ["red", "orange"];
const genericSpecific: string[] = ["Generic", "Specific"];
return {
"background-color": colors[genericSpecific.indexOf(this.selectedOptions[params.node.id])]
};
}
}
如您所见,它有一个自定义的 Cell Renderer。这是它的定义:
 @Component({
selector: "app-generic-specific-renderers",
template: `
<hr />
<select class="form-control" id='0' (change)="updateChosenValue($event.target); refresh(params)">
<option >{{ selectedOptions[params.node.id] }}</option>
<option >Specific</option>
<option >Generic</option>
</select>
<hr />
`
})
export class GenericSpecificCellRenderersComponent implements OnInit {
updateChosenValue(event) {
if (event.value==='Specific'){
this.selectedOptions[this.params.node.id]='Specific'
}
else if (event.value==='Generic'){
this.selectedOptions[this.params.node.id]='Generic'
}
}
selectedOptions:string[]=[];
constructor(private controlAssessmentData: ControlAssessmentService) {
this.controlAssessmentData.currentSelectedOptions.subscribe(
receivedSelectedOptions =>
(this.selectedOptions = receivedSelectedOptions)
);
}
ngOnInit() {}
public params: any;
public gridApi:any;

// called on init
agInit(params: any): void {
this.params = params;
this.gridApi= params.api;
}
// called when the cell is refreshed
refresh(params: any): boolean {
this.params = params;
this.gridApi.refreshCells()
console.log('this.params: ', this.params);
return true;
}
}
每次用户从下拉列表中选择一个选项时,我都想刷新网格。
我认为我的代码应该可以工作,因为我在刷新定义它的网格时使用了相同的逻辑。
然而,它没有。
知道为什么吗?也许我该如何解决?
谢谢!

最佳答案

当一个选项改变时(不是在 refesh() 中),运行 api.refreshCells 并将选项 force 设置为 true。 api.refreshCells({ force: true });
如果可以,还可以在调用中放置所需的行/列以避免重绘整个网格。

关于ag-grid - 当自定义 Cell Renderer 组件内发生更改时,如何刷新 ag-grid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56341073/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com