每次在ag-grid中单击过滤器图标时如何调用函数。下面是我的代码。我的目的是每次单击过滤器图标时重置Name
列的过滤器值。我必须使用agSetColumnFilter
。我尝试过filterParams
,但每次都不会调用它,只有一次可以有人指导我吗?
constructor(private http: HttpClient) {
this.columnDefs = [
{
headerName: "Name",
field: "name",
width: 150,
filter: "agSetColumnFilter",
menuTabs: ['filterMenuTab']
}
];
}
onGridReady(params) {
this.rowData = [
{
name: "A",
flag: true
},
{
name: "B",
flag: false
}
];
}
答案 0 :(得分:0)
您可以使用postProcessPopup
回调(请参阅文档here)。每次您单击过滤器图标时都会调用此回调。
将回调添加到html中:
[postProcessPopup]="postProcessPopup"
然后创建您的postProcessPopup
函数:
this.postProcessPopup = function(params) {
if (params.column.colDef.field === 'name')
{
var athleteFilter = this.gridApi.getFilterInstance('name');
athleteFilter.selectEverything();
this.gridApi.onFilterChanged();
}
}.bind(this);
如果点击过滤器图标用于字段name
,则选择该过滤器的所有内容,然后调用onFilterChanged
上的gridApi
函数以确保其更新。
您会看到工作正常的here(尝试过滤“运动员”字段)。
有关过滤器API的更多文档,请参见here。