我有一个用 Primefaces 组件编写的 JSF 页面。我的页面由三个扇区组成,每个扇区包含一个手风琴面板,手风琴的每个选项卡都包含一个数据表。
我希望使用扇区顶部的两个按钮“过滤器”和“重置过滤器”来搜索数据表。一个扇区内的搜索必须独立于其他扇区内的搜索。
我希望了解执行上述搜索/过滤的最佳方法。考虑每次打开手风琴选项卡时,都会从数据库中加载记录。
<h:form id="form">
<p:tabView id="sectors" value="#{multipleSearchBean.sectors}"
var="sector">
<p:tab id="sett" title="#{sector.description}">
<ui:param name="key" value="searchText#{sector.id - 1}" />
<p:inputText id="searchValue" value="#{multipleSearchBean[key]}" />
<p:commandButton id="plainSearch" value="Filter"
action="#{searchBean.plainSearch()}">
</p:commandButton>
<p:commandButton id="resetSearch" value="Reset Filters"
action="#{searchBean.resetSearchFilters}">
</p:commandButton>
<p:accordionPanel id="accordion"
value="#{searchBean.getTabs()}" var="tab" multiple="true"
dynamic="true" cache="false"
activeIndex="#{searchBean.activeIndexes}">
<p:tab id="accordionTab" title="#{tab.title}">
<p:dataTable id="table" var="row"
value="#{searchBean.getObjects()}"
emptyMessage="Empty table" styleClass="#{sector.id - 1}_tableStyle">
<p:column headerText="Code">
<h:outputText value="#{row.code}" />
</p:column>
<p:column headerText="Description">
<h:outputText value="#{row.description}" />
</p:column>
</p:dataTable>
</p:tab>
</p:accordionPanel>
</p:tab>
</p:tabView>
</h:form>