jstl <c:forEach 循环中的 PrimeFaces 面板在从外部链接更新面板时保留折叠面板的先前索引



我有一个网页,其中包含jstl for Each循环中的面板列表。加载页面时会折叠所有面板。在展开每个面板时,我将折叠状态保存到bean中,以便以后引用它。我从p:commandLink更新面板,但面板显示为基于上一个索引展开的,而不是基于bean值。我的要求是面板的折叠属性应该根据之前设置的bean值进行更新,目前面板是根据之前扩展的面板的索引进行扩展的,而不是根据它的bean属性值。

只需看一下代码片段。

<h:form id="form">
<c:forEach items="#{items}" var="name">
<p:panel header="#{name}" toggleable="true"
toggleTitle="#{bean.toggleStatus.get(name)}"
collapsed="#{bean.toggleStatus.get(name)}" toggleSpeed="500"
id="panel#{name}" widgetVar="panel#{name}">
<h:outputText value="#{name}"/>
</p:panel>
</c:forEach>
<p:commandLink id="Search" style="margin-left :5px;"
action="#{bean.search}" update="form" ajax="true"/>
</h:form>

从您的代码中,#{bean.toggleStatus.get(name)}似乎返回了一个String对象。

<p:panel collapsed="">需要一个布尔值。

您必须发布您的支持bean代码,才能看到该方法的返回值。

最新更新