Jsf Primefaces Accordion+数据表过滤器/多重选择未按预期工作
我有一个搜索屏幕,显示根据搜索值分组在一起的数据。这就是显示的实现方式。我有一个p:accordionpanel,它从后端bean动态填充。我有一个p:datatable,在p:datatable面板中。可以显示多个手风琴面板,每个面板包含一个datatable。显示器按预期工作 问题:我在数据表上实现了过滤器和多行选择。如果填充了多个datatable,则筛选器和搜索仅对最后一个datatable起作用。p:datatable的selection和filteredValue属性绑定到单独的对象。如果单击任意一个“全选”框,最后一个表中的行将被选中。我希望选中表中与“全选”复选框关联的行 这是手风琴/数据表:Jsf Primefaces Accordion+数据表过滤器/多重选择未按预期工作,jsf,primefaces,Jsf,Primefaces,我有一个搜索屏幕,显示根据搜索值分组在一起的数据。这就是显示的实现方式。我有一个p:accordionpanel,它从后端bean动态填充。我有一个p:datatable,在p:datatable面板中。可以显示多个手风琴面板,每个面板包含一个datatable。显示器按预期工作 问题:我在数据表上实现了过滤器和多行选择。如果填充了多个datatable,则筛选器和搜索仅对最后一个datatable起作用。p:datatable的selection和filteredValue属性绑定到单独的对象
<p:accordionPanel multiple="true"
value="#{basicSearchResultsVO.sortedMessages}" var="sortedMessages">
<p:tab title="#{sortedEdiMessages.key}">
<p:dataTable id="dataTable"
emptyMessage="No Data found with searched criteria"
filteredValue="#{sortedMessages.value.filteredMessages}"
rowKey="#{message.archiveSequenceI}"
rows="10"
selection="#{sortedMessages.value.selectedMessages}"
sortBy="#{message.msgDateTimeTs}" sortOrder="descending"
value="#{sortedMessages.value.messages}" var="message"
widgetVar="messagesTable">
<f:facet name="header">
<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>
...
</p:dataTable>
</p:tab>
...
</p:accordionPanel>
我不确定我错过了什么。非常感谢您的帮助和反馈 好的。我发现代码有问题。必须使datatable上的widgetVar属性唯一,才能使filter/multi-select在每个datatable上正确工作。这是修改后的代码。唯一的更改是p:datatable的widgetVar属性和绑定到后端bean提供的唯一值的p:inputText的onkeyup属性
<p:accordionPanel multiple="true"
value="#{basicSearchResultsVO.sortedMessages}" var="sortedMessages">
<p:tab title="#{sortedEdiMessages.key}">
<p:dataTable id="dataTable"
emptyMessage="No Data found with searched criteria"
filteredValue="#{sortedMessages.value.filteredMessages}"
rowKey="#{message.archiveSequenceI}"
rows="10"
selection="#{sortedMessages.value.selectedMessages}"
sortBy="#{message.msgDateTimeTs}" sortOrder="descending"
value="#{sortedMessages.value.messages}" var="message"
widgetVar="#{sortedEdiMessages.key}">
<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>
...
</p:dataTable>
</p:tab>
...
</p:accordionPanel>