У меня есть таблица, которая реализует response-bootstrap-table2 .Они предоставляют собственный способ создания внешнего фильтра (из заголовка столбца).В моей таблице первый столбец представляет собой комбинацию данных, в которых я передаю строку с @
в качестве разделителя и форматирую их с помощью функции форматирования следующим образом:
Это определение моего столбца:
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
функция, которая запускает табличный фильтр, как показано в документации здесь .Но я не уверен, как получить поведение like
.
const onChangeFilter = (e) => {
projectFilter(e.target.value)
}
Я ценю любую подсказку / помощь.Заранее спасибо