【问题标题】:Ag Grid how to set filter server side from codeAg Grid 如何从代码中设置过滤器服务器端
【发布时间】: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;

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2022-10-17
      • 2019-11-19
      • 2021-02-25
      • 2020-04-11
      • 2019-04-30
      • 2019-12-15
      • 2017-11-19
      • 2021-02-13
      • 1970-01-01
      相关资源
      最近更新 更多