如何根据显示值过滤agGrid中的行?

sim*_*ser 1 filtering ag-grid angular ag-grid-angular

我有 agGrid,其中包含使用 refData 属性的列。它显示为“是”或“否”,但基础值为“1”或“0”。我想按数据过滤列,但按“是”或“否”过滤时没有给出任何结果。然而,当我输入基础数据(即 1 或 0)时,过滤器开始工作。

HTML 文件

<ag-grid-angular class="ag-theme-balham" 
            [rowData]="categoryRowData" [columnDefs]="categoryColDef" [domLayout]="domLayout"
            (gridReady)="onGridReady($event)">
       </ag-grid-angular>
Run Code Online (Sandbox Code Playgroud)

TS文件

export class CategoryComponent implements OnInit{
    private domLayout;
    private objCategoryEditor = {};
    categoryColDef ;

    constructor()
    {
        this.getCategoryMapping();
        this.createCategoryColDefinition();
    }

    ngOnInit() {        
        this.domLayout = "autoHeight";
    }

    onGridReady(params: any) {            
        params.api.sizeColumnsToFit();
        params.api.resetRowHeights();                                     
    }

    createCategoryColDefinition() {
        this.categoryColDef = [            
        {
            headerName: 'Is Subcategory', field: 'IsSubcategoryText', resizable: true,filter:true,
            editable: function (params: any) {
                return true;
            },
            cellEditor: "agSelectCellEditor",
            cellEditorParams: {
                values: this.extractValues(this.objCategoryEditor),
            },
            refData: this.objCategoryEditor,            
        }
    ]}

    getCategoryMapping()
    {
        this.objCategoryEditor["0"] = "No";
        this.objCategoryEditor["1"] = "Yes";    
        this.createCategoryColDefinition();                     
    }

    extractValues(mappings) {    
        return Object.keys(mappings);            
    }
}
Run Code Online (Sandbox Code Playgroud)

当按“否”过滤时,它不会返回任何行:-

在此输入图像描述

当按 0 过滤时,它返回行:-

在此输入图像描述

如何自定义过滤,以便在按“是”或“否”过滤时开始返回行?请帮忙解决这个问题。

Pra*_*hat 6

我会使用filterValueGetter像这样的列定义 -

 filterValueGetter: this.customfilterValueGetter
Run Code Online (Sandbox Code Playgroud)

这是一个简单的实现customfilterValueGetter

 customfilterValueGetter(params) {
    if(params.data) {
      return this.objCategoryEditor[params.data.IsSubcategoryText];
    }
 }
Run Code Online (Sandbox Code Playgroud)

根据文档 -

filterValueGetter(params)
函数或表达式。获取用于过滤目的的值。

普朗克在这里。查看零售价