c:foreach p:datatable 嵌套刷新问题【备忘】

来源:互联网 发布:php数组排序算法 编辑:程序博客网 时间:2024/04/30 10:32

c:foreach  p:datatable 嵌套刷新问题

环境为:jsf2.1 primefaces5 java 7 tomcat 7

<p:accordionPanel id="clientList" multiple="true" widgetVar="clientList"
styleClass="autoHei" activeIndex="#{clientBB.activeTabNumStr}">
<ui:repeat value="#{clientBB.clientsMap}" var="clientList">
<p:tab title="#{clientList.key.dataName}">
<p:dataTable var="client" value="#{clientList.value}"
emptyMessage="没有记录" selectionMode="single"
selection="#{clientBB.currentBO}" rowKey="#{client}">
<f:facet name="header">
</f:facet>
<p:ajax event="rowSelect" listener="#{clientBB.onRowSelect}"
update=":leftForm,:rightForm" />
<p:column headerText="客户名称">
<h:outputText value="#{client.title}" />
</p:column>
<p:column headerText="创建时间">
<h:outputText value="#{client.createTime}">
<f:convertDateTime pattern="yyyy-MM-dd" timeZone="GMT+8" />
</h:outputText>
</p:column>
</p:dataTable>
</p:tab>
</c:forEach>
</p:accordionPanel>

以上代码在更新其中一个属性刷新时出现修改的那个分组无法显示的问题

后面代码改成如下:


<p:accordionPanel id="clientList" multiple="true"
widgetVar="clientList" value="#{clientBB.areaNameList}"
var="areaName" styleClass="autoHei"
activeIndex="#{clientBB.activeTabNumStr}">
<p:tab title="#{areaName}">
<p:dataTable var="client" value="#{clientBB.clientsMap[areaName]}"
emptyMessage="没有记录" selectionMode="single"
selection="#{clientBB.currentBO}" rowKey="#{client}">
<f:facet name="header">
</f:facet>
<p:ajax event="rowSelect" listener="#{clientBB.onRowSelect}"
update=":leftForm,:rightForm" />
<p:column headerText="客户名称">
<h:outputText value="#{client.title}" />
</p:column>
<p:column headerText="创建时间">
<h:outputText value="#{client.createTime}">
<f:convertDateTime pattern="yyyy-MM-dd" timeZone="GMT+8" />
</h:outputText>
</p:column>
</p:dataTable>
</p:tab>
</p:accordionPanel>

用了p:accordionPanel 标签中内置的iterator就不会出现这个问题了


原来的:


2.修改后错误的情况


3、正确的情况


0 0
原创粉丝点击