首页 > 解决方案 > 使用 PrimeReact DataTable 的 Filter 属性

问题描述

实现的DataTable的其中一列有点像这样

{ field: 'FieldValuesAsText#XYZ', header: 'XYZ', width: '150px', sort: true, filterElement: 'No' }

<Column key={col.field} 
        field={col.field} 
        header={col.header}
        body={this.trimContent}
        filter={true}
        filterMatchMode="contains"
        sortable={col.sort}/>

FieldValuesAsText是一个以XYZ作为其属性之一的对象。body属性中使用的自定义函数成功检索了该值,但问题是当我尝试执行过滤操作时。由于过滤器默认为字段,在这种情况下是FieldValuesAsText#XYZ,所以它显然会返回未定义的。我怎样才能使我的过滤器正常工作?

标签: reactjsprimereact

解决方案


您需要实现自定义过滤器功能。这是我用来过滤数据表中类似列的自定义函数。

filterMatchMode="custom" filterFunction={customFunction}


export const customFunction = (value, filter) => {
  return value.toUpperCase().indexOf(filter.toUpperCase()) >= 0
}

推荐阅读