Каков наилучший способ скрыть "Завершенные или отмененные элементы" в таблице?

Поэтому я настроил модель / таблицу, которую пользователи будут использовать в качестве списка задач проекта. Мне бы хотелось, чтобы при изменении состояния (поля в модели) элемента на Завершено или Отменено, оно скрывалось.

Таким образом, они имеют дело только с активными записями. Но я также хотел бы, чтобы они могли просматривать эти скрытые (заархивированные) элементы при необходимости.

Я добавил следующий код в параметр onAttach таблицы

var datasource = app.datasources.Projects;
 datasource.query.filters.Status._notContains = 'Completed';
 datasource.load();

И тогда у меня есть кнопка со следующим кодом, чтобы они могли видеть скрытые / заархивированные элементы:

widget.datasource.query.clearFilters();
widget.datasource.load();
app.closeDialog();
var datasource = app.datasources.Projects;
 datasource.query.filters.Status._contains = 'Completed';
 datasource.load();

Это работает, но я чувствую, что мог бы быть лучший / более изящный способ достигнуть этого. Тем более, что приложение должно загружать данные, а затем фильтровать их (что приводит к более медленной загрузке). (Я думаю, что у меня там тоже может быть какой-то избыточный код)

Также я чувствую, что мне что-то не хватает с моим синтаксисом, потому что я не могу заставить его отфильтровывать Завершено и Отменено

Спасибо за помощь!

2 ответа

Если у вас есть одна страница элементов в таблице, а элементов не так много, вы можете выполнить фильтрацию на стороне клиента. Например, вы можете использовать выражение привязки, чтобы добавить стиль "projectHidden" в строку на основе некоторой логики, а затем использовать CSS, чтобы изменить видимость строки.

Для вашего второго блока кода нет причин очищать фильтры, загружать, устанавливать фильтры и затем загружать снова. Просто очистите фильтры, установите новый фильтр и вызовите load. Также, если вы вручную управляете загрузкой запроса, вам может потребоваться отменить настройку в источнике данных для автоматической загрузки данных.

var datasource = app.datasources.Projects;
 datasource.query.filters.Status._notEquals = 'Completed';
 datasource.query.filters.Status._notEquals = 'Cancelled';
 datasource.load();
Другие вопросы по тегам