同じビュー ページ (overview.xhtml) に3 つのopenFacesがあります。 <o:datatable />
- 最初はすべての音楽バンドのリストを表示します
- 2d は、音楽バンドによって書かれたすべての曲のリストを表示します
- 3D には、音楽バンドが提供するすべてのショーのリストが表示されます
<o:inputTextFilter />
行IDを使用して最初のデータテーブルをフィルタリングするために使用しています(
<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>
曲とショーは音楽バンドの子オブジェクトです。私が本当に必要としているのは、同じinputTextFilterまたは同様のものを使用して3つのデータテーブルをフィルタリングする機能です。3つのデータテーブルにはそれぞれバンドIDを持つ列があるためです。
ユーザーは、3 つのフィルターを使用して、バンド ID を 3 回入力することを受け入れません。1 回目は BAND テーブル、2 回目は show テーブル、3 回目は song テーブルです。代わりに、バンド ID を 1 回入力すると、すぐに 3 つのテーブルがフィルター処理されます。
1 つの回避策は、3 つを使用<o:inputTextFilter />
し、javascript または ajax を使用してそれらの値を設定することです。ユーザーがフィルターに何かを入力すると、入力された値がすぐに他のフィルターに追加されます。私はその回避策を理解できません。それでも、ユーザーが 1 つのみを使用する必要があるのに、3 つのフィルターを表示するのは奇妙に思えます。どんなアイデアや助けも貴重です!