Ag Grid 如何从代码中设置过滤器服务器端
Posted
技术标签:
【中文标题】Ag Grid 如何从代码中设置过滤器服务器端【英文标题】:Ag Grid how to set filter server side from code 【发布时间】:2021-01-02 07:09:36 【问题描述】:我的项目中有带有 Angular 的 Ag 网格,我在网格中添加了过滤器。
function ServerSideDatasource(server, projectListComponent)
return
getRows: function (params)
var response = server.getData(params.request).then((res) =>
...
当我在列标题中选择示例过滤器时,params.request.filterModel 返回 json(选择了两个过滤器):
"
"ProjectID":"filterType":"number","type":"equals","filter":10,"filterTo":null,
"ProjectName":"filterType":"text","type":"equals","filter":"P"
"
而且它有效。 但是我想在开始加载视图时将上面的json分配给Ag网格的过滤器? 我想在开始时通过为 json 分配预定义的值来设置过滤器。
我尝试用这种方式,但它不起作用:
var jsonText = " \"ProjectID\": \"filterType\": \"number\", \"type\": \"equals\", \"filter\": 10, \"filterTo\": null ,"
+ "\"ProjectName\": \"filterType\": \"text\", \"type\": \"equals\", \"filter\": \"P\" "
+ " ";
var jsonFilter = JSON.parse(jsonText);
this.gridApi.rowModel.filterManager.allFilters = jsonFilter;
【问题讨论】:
【参考方案1】:您可以使用 setModel 方法进行过滤
let filterComponent = this.gridApi.getFilterInstance('ProjectID');
filterComponent.setModel(
type: "equals",
filter: 10
);
this.gridApi.onFilterChanged();
然后以同样的方式设置其他字段过滤器。
【讨论】:
以上是关于Ag Grid 如何从代码中设置过滤器服务器端的主要内容,如果未能解决你的问题,请参考以下文章
ag-grid 不尊重 ColumnDefinitions 中设置的列的列顺序
Ag Grid 部分单元格格式 - 例如如何在单元格中设置一些文本样式 - 粗体、斜体、彩色(但不是其他文本)