ag-grid api支持列过滤下拉列表

时间:2016-04-27 07:19:38

标签: javascript jquery angularjs datatable ag-grid

在数据表中,它支持单个列搜索(选择输入)。 (datatable)。通过键入,ag-grid除了过滤器列之外还支持类似的功能。

enter image description here

3 个答案:

答案 0 :(得分:1)

据我所知,ag-grid不支持“开箱即用”。在免费版本中,仅支持“数字”和“文本”类型的过滤。在付费的企业版中,还有一个类型为“set”的过滤器,但只有多个选择。但是,可以编写自定义过滤器。示例显示在“自定义列过滤”子章节Link to the custom ag-grid filters

P.S。想发表评论,因为实际上这不是一个真正的答案,但没有足够的回购。

答案 1 :(得分:1)

是ag ag grid有一个api gridOptions.api.setQuickFilter但是它将在整个网格中应用

答案 2 :(得分:0)

    import { Component } from '@angular/core';
import { AgFloatingFilterComponent } from 'ag-grid-angular';
import { IFloatingFilterParams } from 'ag-grid-community';

@Component({
  selector: 'number-component',
  template: `<select
      style="width: 100%"
      [(ngModel)]="currentValue"
      (ngModelChange)="onChange()"
    >
    <option value=""></option>
    <option *ngFor="let c of options" [ngValue]="c">{{c}}</option>
    </select>`,
})
export class OptionFilterComponent
  implements AgFloatingFilterComponent {
  params: IFloatingFilterParams | undefined;
  currentValue: Number | null | string = null;
  style: any;
  options: any;

  agInit(params: any): void {
    this.params = params;
    this.options = params.options;
  }

  onParentModelChanged(parentModel: any) {
    // When the filter is empty we will receive a null value here
    if (!parentModel) {
      this.currentValue = null;
    } else {
      this.currentValue = parentModel.filter;
    }
  }

  onChange() {
    if (!!!this.currentValue) {
      // Remove the filter
      this.params?.parentFilterInstance((instance: any) => {
        instance.onFloatingFilterChanged(null, null);
      });
      return;
    }
    this.params?.parentFilterInstance((instance: any) => {
      instance.onFloatingFilterChanged('equals', this.currentValue);
    });
  }
}