Oracle ADF: как отфильтровать строки в RichTable? - PullRequest
1 голос
/ 23 ноября 2011

У меня есть следующее требование.

  1. Отображение данных в таблице
  2. Нажатие на флажок отфильтровывает отображаемые в данный момент строки по некоторому условию
  3. Повторное нажатие на флажоквернуть внешний вид данных в его предыдущее состояние

Для достижения этого в моем ViewObject есть метод rowQualizes, который представляет собой простой объект представления на основе SQL для применения моей пользовательской логики фильтра.

Когда пользовательнажимает на флажок Я обновляю данные объекта просмотра, чтобы применить фильтр

viewObject.setDoFiltering(true);
viewObject.setQueryMode(ViewObject.QUERY_MODE_SCAN_VIEW_ROWS);
viewObject.executeQuery();

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

Но когда мне нужноотменить фильтр не получится, потому что итератор больше не содержит предыдущих строк, и я могу загружать их только из базы данных, но это означает, что я могу потерять уже внесенные изменения для просмотра строк объекта.

Итак,когда я сделаю

viewObject.setDoFiltering(false);
viewObject.setQueryMode(ViewObject.QUERY_MODE_SCAN_VIEW_ROWS);
viewObject.executeQuery();

, он вернет мне те строки, которые отображались в прошлый раз.Если я сделаю

viewObject.setDoFiltering(true);
viewObject.setQueryMode(ViewObject.QUERY_MODE_SCAN_DATABASE_TABLES);
viewObject.executeQuery();

, он вернет мне все строки, но я потеряю свои изменения, уже внесенные для просмотра строк объекта.

Мой вопрос: как этого избежать?Может быть, есть другой способ сделать это?Возможно, можно что-то сделать с RichTable, чтобы рассказать, как фильтровать строки в памяти.

Любые советы горячо приветствуются!

1 Ответ

0 голосов
/ 26 февраля 2012

Я считаю, что это можно сделать с помощью ViewCriteria, чтобы отфильтровать средства применить ViewCriteria, а затем отключить его, чтобы просмотреть все ваши данные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...