У меня есть таблица данных в primereact со списком клиентов, в котором есть столбец validTo
, который возвращает дату или ноль. Я хочу отфильтровать всех действительных клиентов, поэтому я бы отфильтровал значение равно null, но это не работает, потому что null сбрасывает фильтр.
Второй вариант - заменить null на что-то вроде «-» в шаблоне , но как мне отфильтровать значение, возвращаемое шаблоном, так как кажется, что datatable фильтрует только исходные данные?
Обновление 1:
Я получил немного далее.
мой столбец выглядит так
<Column
field="giltbis"
header="giltbis"
filter={true}
filterElement={giltbisFilterElement}
filterMatchMode="custom"
filterFunction={filterGiltbis}
sortable={true}
body={dateTemplate_giltbis}
/>
А вот моя настройка фильтра:
const handleFilterClick = (value) => {
setgiltbisSelected(value);
dt.current.filter(value, "giltbis", "custom");
};
const filterGiltbis = (value) => {
if (giltbisSelected === "Gültig") {
return value == null;
} else if (giltbisSelected === "Ungültig") {
return value != null;
} else {
//how to cancel filter or show all values
}
};
const giltbisFilterElement = (
<SelectButton
style={{ width: "100%" }}
value={giltbisSelected}
options={giltbisoptions}
onChange={(e) => handleFilterClick(e.value)}
/>
);
Осталась только одна проблема. Как отменить фильтрацию или показать все значения?