2015-01-26 30 views
1

我有一個搜索屏幕,它根據搜索值顯示分組在一起的數據。這是如何完成顯示。我有一個從後端bean動態填充的p:accordionpanel。我有一個p:datatable與在p:accordianpanel。可以有多個手風琴面板顯示每個包含數據表。顯示器按預期工作。Primefaces Accordion +數據表篩選器/多選不按預期方式工作

問題:我已經在數據表上實現了過濾器和多行選擇。如果有超過1個數據表被填充,則篩選器和搜索只能在最後一個數據表上運行。 p:datatableselectionfilteredValue屬性綁定到單獨的對象。如果我點擊任何「全選」框,則會從最後一個表中選擇行。我期望選中與「全選」複選框關聯的表上的行。

這裏的手風琴/數據表:

<p:accordionPanel var="sortedMessages" value="#{basicSearchResultsVO.sortedMessages}" multiple="true"> 
<p:tab title="#{sortedEdiMessages.key}"> 
<p:dataTable id="dataTable" var="message" value="#{sortedMessages.value.messages}" paginator="true" rows="10" 
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" 
widgetVar="messagesTable" emptyMessage="No Data found with searched criteria" 
filteredValue="#{sortedMessages.value.filteredMessages}" lazy="false" 
selection="#{sortedMessages.value.selectedMessages}" 
rowKey="#{message.archiveSequenceI}" sortBy="#{message.msgDateTimeTs}" sortOrder="descending"> 
<f:facet name="header"> 
    <!--<p:commandButton id="toggler" type="button" value="Columns" style="float:right" icon="ui-icon-calculator" /> 
    <p:columnToggler datasource="outboundDataTable" trigger="toggler" /> -->  
    <p:outputPanel style="text-align: right;margin:3px;"> 
    <h:outputText value="Search all fields:"/> 
    <p:inputText id="globalFilter" onkeyup="PF('messagesTable').filter()" style="width:150px;" placeholder="Enter keyword"/> 
    </p:outputPanel> 
</f:facet> 

我不知道我錯過了什麼。希望你的幫助和反饋。

回答

1

好的。我發現代碼的問題。必須使數據表上的widgetVar屬性對於每個數據表中的篩選器/多重選擇才能正確工作。這是修改後的代碼。唯一的變化是p:datatablewidgetVar屬性和p:inputTextonkeyup屬性綁定到由後端Bean提供的唯一值。

<p:accordionPanel var="sortedMessages" value="#{basicSearchResultsVO.sortedMessages}" multiple="true"> 
<p:tab title="#{sortedEdiMessages.key}"> 
<p:dataTable id="dataTable" var="message" value="#{sortedMessages.value.messages}" paginator="true" rows="10" 
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" 
widgetVar="#{sortedEdiMessages.key}" emptyMessage="No Data found with searched criteria" 
filteredValue="#{sortedMessages.value.filteredMessages}" lazy="false" 
selection="#{sortedMessages.value.selectedMessages}" 
rowKey="#{message.archiveSequenceI}" sortBy="#{message.msgDateTimeTs}" sortOrder="descending"> 
<f:facet name="header"> 
    <p:outputPanel style="text-align: right;margin:3px;"> 
    <h:outputText value="Search all fields:"/> 
    <p:inputText id="globalFilter" onkeyup="PF('#{sortedEdiMessages.key}').filter()" style="width:150px;" placeholder="Enter keyword"/> 
    </p:outputPanel> 
</f:facet> 
+0

你可以添加你是如何做到的,所以其他人可以學習... – Kukeltje 2015-01-27 22:55:43

相關問題