Панель PrimeFaces внутри цикла jstl ‹c:forEach сохраняет предыдущий индекс свернутой панели при обновлении панели по внешней ссылке

У меня есть веб-страница, которая содержит список панелей внутри цикла jstl forEach. Все панели сворачиваются при загрузке страницы. При расширении каждой панели я сохраняю свернутое состояние в 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>

person user1887332    schedule 08.12.2012    source источник
comment
Нужен код bean-компонента. особенно, toggleStatus.get(имя)   -  person Mindwin    schedule 10.12.2012


Ответы (1)


из вашего кода кажется, что #{bean.toggleStatus.get(name)} возвращает объект String.

<p:panel collapsed=""> требует логического значения.

Вы должны опубликовать свой код компонента поддержки, чтобы увидеть возвращаемое значение этого метода.

person Mindwin    schedule 10.12.2012