带有LIKE运算符的下拉菜单react-bootstrap-table2

时间:2019-03-19 11:43:06

标签: reactjs react-bootstrap-table

我有一个实现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)
    }

我很感谢任何线索/帮助。预先感谢

0 个答案:

没有答案