У меня есть 3 openFaces <o:datatable />
s на одной странице просмотра (Overview.xhtml).
- Первый отображает список всех музыкальных групп
- 2d отображает список всех песен, написанных музыкальными группами
- 3d отображает список всех шоу музыкальных групп
Я использую <o:inputTextFilter />
, чтобы отфильтровать первый набор данных, используя
идентификатор строки (
<h:form>
<o:datatable value="#{bandBean.items}" var="band" ........<o:inputTextFilter
expression="#{band.id}" .../>
</h:form>
<h:form>
<o:datatable value="#{showBean.items}" var="show" ........<o:inputTextFilter
expression="#{band.id}" .../>
</h:form>
<h:form>
<o:datatable value="#{songBean.items}" var="song" ........<o:inputTextFilter
expression="#{band.id}" .../>
</h:form>
Песни и шоу являются дочерними объектами музыкальных групп.
Что мне действительно нужно, так это возможность фильтровать 3 таблицы данных, используя
тот же inputTextFilter или что-то подобное, поскольку каждый из 3 таблиц данных имеет столбец с идентификатором полосы
Пользователь никогда не допустит трехкратного ввода идентификатора группы.
время для таблицы BAND, второй раз для таблицы шоу и
третий раз для таблицы песен, используя 3 фильтра. Вместо этого он хочет набрать один раз группу
ID, и сразу 3 таблицы фильтруются.
Один из обходных путей - использовать три <o:inputTextFilter />
и установить их значения с помощью javascript или ajax: пока пользователь вводит что-то в фильтр, вводимое значение немедленно добавляется к другим фильтрам. Я не могу понять этот обходной путь. все же кажется странным отображать 3 фильтра, в то время как пользователь должен использовать только один.
Любые идеи и помощь будут ценны!