Ag Grid 如何从代码设置过滤器服务器端
Ag Grid how to set filter server side from code
我的项目中有带 Angular 的 Ag 网格,我向网格添加了过滤器。
function ServerSideDatasource(server, projectListComponent) {
return {
getRows: function (params) {
var response = server.getData(params.request).then((res) => {
...
当我在 headers 列中选择示例过滤器时 params.request.filterModel returns 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;
您可以对过滤器使用 setModel 方法
let filterComponent = this.gridApi.getFilterInstance('ProjectID');
filterComponent.setModel({
type: "equals",
filter: 10
});
this.gridApi.onFilterChanged();
然后以同样的方式设置其他字段过滤器。
我的项目中有带 Angular 的 Ag 网格,我向网格添加了过滤器。
function ServerSideDatasource(server, projectListComponent) {
return {
getRows: function (params) {
var response = server.getData(params.request).then((res) => {
...
当我在 headers 列中选择示例过滤器时 params.request.filterModel returns 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;
您可以对过滤器使用 setModel 方法
let filterComponent = this.gridApi.getFilterInstance('ProjectID');
filterComponent.setModel({
type: "equals",
filter: 10
});
this.gridApi.onFilterChanged();
然后以同样的方式设置其他字段过滤器。