自定义过滤器 ag 网格反应
custom filter ag grid react
我正在尝试使用 React 在 ag 网格中实现自定义 DropDown 过滤器。
我关注的link是link
我能够创建过滤器,但默认情况下不显示过滤器。作为用户,我们需要单击列 header 旁边的 3 箭头图标,然后过滤器就会出现。
有没有办法默认显示自定义过滤器下拉菜单?
希望Floating filters
能帮到你。
中检查这个例子
filter: "agNumberColumnFilter",
floatingFilterComponent: "sliderFloatingFilter",
floatingFilterComponentParams: {
maxValue: 5,
suppressFilterButton: true
},
示例显示 sliderFloatingFilter
,要使其成为下拉过滤器,我认为您需要为其创建自定义组件。
看看如何ag-grid team has made TextFloatingFilterComp
, DateFloatingFilterComp
, NumberFloatingFilterComp
etc. on GitHub code
希望对您有所帮助。
我使用此列配置实现了 dropdown/enum 过滤器。我的情况是,我试图添加一个布尔过滤器。
这是完整的例子
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 示例中所做的那样
我正在尝试使用 React 在 ag 网格中实现自定义 DropDown 过滤器。 我关注的link是link
我能够创建过滤器,但默认情况下不显示过滤器。作为用户,我们需要单击列 header 旁边的 3 箭头图标,然后过滤器就会出现。
有没有办法默认显示自定义过滤器下拉菜单?
希望Floating filters
能帮到你。
filter: "agNumberColumnFilter",
floatingFilterComponent: "sliderFloatingFilter",
floatingFilterComponentParams: {
maxValue: 5,
suppressFilterButton: true
},
示例显示 sliderFloatingFilter
,要使其成为下拉过滤器,我认为您需要为其创建自定义组件。
看看如何ag-grid team has made TextFloatingFilterComp
, DateFloatingFilterComp
, NumberFloatingFilterComp
etc. on GitHub code
希望对您有所帮助。
我使用此列配置实现了 dropdown/enum 过滤器。我的情况是,我试图添加一个布尔过滤器。
这是完整的例子
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 示例中所做的那样