我有一个实现react-bootstrap-table2的表。它们提供了一种进行外部过滤的自定义方式(在列标题之外)。在我的表格中,第一列是数据的组合,我传递了一个以@
作为分隔符的字符串,并使用formatter函数对其进行了格式化,如下所示:
这是我的列定义:
let projectFilter;
columns = [{
dataField: 'project',
text: 'Project',
filter: textFilter({
options: fpsoOptions,
getFilter(filter){
projectFilter = filter;
},
style: { display: 'none' }
}),
sort: true,
formatter: this.projectFormatter,
headerStyle: (col, idx) => {
return smHeaderStyle;
},
}, [..]
这是projectFormatter
函数:
projectFormatter = (cell, row) => {
const values = cell.split('|');
const fpsos = values[0].split('@');
return (
<div>
{fpsos.map((pu, idx) => {
const identity = pu.split(';')[0];
const id = pu.split(';')[1];
const separator = idx !== fpsos.length - 1 ? ", " : '';
return (
<Link to={`/view/${id}/fpso`}>{identity}{separator}</Link>
)
})}
<br/>
<span><b>{ values[1] }</b></span><br/>
</div>
);
}
当它是文本输入过滤器时,过滤器可以正常工作。现在,我正在尝试使用LIKE运算符行为进行自定义选择过滤器,下拉列表(fpso列表)中的选定值将作为该列的子字符串进行过滤。
这是我的onChange
函数,它触发表过滤器,如文档here中所示。但是我不确定如何获得like
的行为。
const onChangeFilter = (e) => {
projectFilter(e.target.value)
}
我很感谢任何线索/帮助。预先感谢