代码之家  ›  专栏  ›  技术社区  ›  Abhra Dey

自定义过滤器ag grid react

  •  3
  • Abhra Dey  · 技术社区  · 6 年前

    我试图使用React在ag网格中实现一个自定义下拉过滤器。 我关注的链接是 link

    我能够创建过滤器,但是默认情况下过滤器不会出现。作为用户,我们需要单击列标题旁边的3箭头图标,然后出现过滤器。

    是否有默认情况下显示自定义过滤器下拉列表的方法?

    2 回复  |  直到 6 年前
        1
  •  3
  •   Paritosh    6 年前

    我希望 Floating filters 我可以在这里帮助你。

    将此示例签入 ag-grid documentation

          filter: "agNumberColumnFilter",
          floatingFilterComponent: "sliderFloatingFilter",
          floatingFilterComponentParams: {
            maxValue: 5,
            suppressFilterButton: true
          },
    

    示例显示 sliderFloatingFilter ,要使其成为下拉过滤器,我认为您需要为其创建自定义组件。

    看看如何 团队已 TextFloatingFilterComp ,则, DateFloatingFilterComp ,则, NumberFloatingFilterComp 等打开 GitHub code

    希望这有帮助。

        2
  •  1
  •   Zohaib Ijaz    4 年前

    我使用这个列配置实现了下拉/枚举过滤器。在我的案例中,我试图添加布尔过滤器。

    下面是完整的示例

    https://codesandbox.io/s/ag-grid-react-enum-filter-q4er8?file=/src/App.js:1572-1599

    const getEnumColumnParams = (enumMap) => {
      return {
        cellRenderer: (params) => {
          if (!params.data) return "";
          const { value } = params;
          return enumMap[value];
        },
        filterParams: {
          buttons: ['reset', 'apply'],
          closeOnApply: true,
          filterOptions: [
            "empty",
            ...Object.keys(enumMap).map(key => {
              return {
                displayKey: key,
                displayName: enumMap[key],
                test: function (filterValue, cellValue) {
                  return cellValue === true;
                },
                hideFilterInput: true,
              };
            })
          ],
          suppressAndOrCondition: true,
        },
      };
    };
    
    const boolEnum = {
      true: 'Yes',
      false: 'No'
    };
    
    const colorEnum = {
      '#ff00000': 'Red',
      '#00ff00': 'Green',
      '#0000ff': 'Blue',
    };
    
    const columnDefs = [
      {
        field: 'available',
        ...getEnumColumnParams(boolEnum),
      },
      {
        field: 'color',
        ...getEnumColumnParams(colorEnum),
      }
    ];

    也可以创建列类型并指定 type: 'boolColumn' 如我在上面的codesandbox示例中所做的那样