Ag Grid如何从代码设置过滤器服务器端

时间:2020-09-15 13:47:55

标签: filter ag-grid ag-grid-angular

我的项目中有带有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 个答案:

答案 0 :(得分:0)

您可以使用setModel方法进行过滤

    let filterComponent = this.gridApi.getFilterInstance('ProjectID');    
    filterComponent.setModel({    
          type: "equals",    
          filter: 10    
        });    
   this.gridApi.onFilterChanged();

然后以相同的方式设置其他字段过滤器。