我只是想检查是否可以在回调中以复杂对象而不是字符串数组的形式给出 setFilter 值。我们需要 setFilter 来拥有复杂对象的原因是因为我们使用服务器端过滤,并且我们希望在过滤器中显示标签,但将键发送回服务器以执行过滤。 例如,如果我们有像 {name: 'some name', id: 1} 这样的对象,我们希望在过滤器 UI 中显示 'some name',但是当选择该过滤器时,我们需要关联的 id(在本例中为 1)。
通过查看setFilter的源代码和相应的模型,似乎这是不可能的。
有没有一种方法可能是我想念的,这可以工作?
ag-Grid版本23.2.0
我有完全相同的问题,从界面来看,这似乎是不可能的,因为预期的
string[]
值
interface SetFilterValuesFuncParams {
// The function to call with the values to load into the filter once they are ready
success: (values: string[]) => void;
// The column definition object from which the set filter is invoked
colDef: ColDef;
}
您可以使用cellRenderer。将您的 ID 设置为值,然后在 cellRenderer 中将它们转换为名称
const filterItems = [{id: '1', name: 'Value 1'}, {id: '2', name: 'Value 2'}];
...
filter: 'agSetColumnFilter',
filterParams: {
values: filterItems.map((item) => item.id),
cellRenderer: (params: { value: string }) => {
return params.value === '(Select All)'
? '(Select All)'
: filterItems.find((item) => item.id === params.value)?.name;
}
},
...