h: selectOneMenu f: selectItems не отображается во всплывающем окне

У меня есть всплывающее окно с h:selectOneMenu. Это всплывающее окно будет отображаться при a4j:commandLink клике.

h:selectOneMenu имеет атрибут «значение», который не вызывается при рендеринге всплывающего окна (я отлаживал его с помощью System.out.println()).

Поскольку это значение не обновляется во всплывающем окне, я вижу значение последней операции, хотя я хочу видеть пустой список для новой операции.

Какие-либо предложения?

Примечание. Еще одно наблюдение: если «добавить» какую-либо кнопку во всплывающем окне, которая обновляет h: selectOneMenu, то она работает нормально.

Мой код выглядит примерно так:

<rich:popupPanel id="CModalPanel"
                 autosized="true"
                 resizeable="false"
                 moveable="true" domElementAttachment="parent">
    <f:facet name="header">
        <h:outputText value="Select list"/>
    </f:facet>

    <h:form id="cListID">
       <a4j:outputPanel id="panelID">
    <h:panelGroup>
           <h:selectOneMenu id="cListMenu"
                       value="#{myBean.currvalue}" >                        
                <f:selectItems value="#{myBean.plistItems}" />
            </h:selectOneMenu>
    </h:panelGroup>
    <h:panelGroup>
             <a4j:commandLink id="refreshButton" 
                         actionListener="#{anotherBean.addMethod}"
                         render=":cListID" >

             </a4j:commandLink>
     </h:panelGroup>
</a4j:outputPanel>
</h:form>
</rich:popupPanel> 

person kosa    schedule 14.06.2012    source источник


Ответы (2)


Вам необходимо обновить содержимое <rich:popupPanel> перед его открытием.

<a4j:commandLink ... render=":cListID" oncomplete="#{rich:component('CModalPanel')}.show()" />
person BalusC    schedule 14.06.2012
comment
Привет, BalusC, я сделал это, но почему-то другая кнопка во всплывающем окне, которая обновляет то же самое всплывающее окно, теперь не работает. Любой ввод? - person kosa; 15.06.2012
comment
Вы должны убедиться, что вы явно включаете идентификатор клиента <h:form> в файл render. См. также stackoverflow.com/ вопросы/10807640/ - person BalusC; 15.06.2012
comment
Привет, BalusC, я также пробовал с идентификатором клиента формы, пожалуйста, посмотрите мой обновленный код в исходном вопросе, я пробовал :cListID, а также :cListID:panelID в атрибуте рендеринга. Ни один из этих вариантов не обновляет форму. - person kosa; 15.06.2012
comment
Привет, поскольку вы отметили ответ как принятый, могу ли я предположить, что конкретная проблема была решена? Возможно, вы использовали неправильный идентификатор клиента. - person BalusC; 16.06.2012
comment
Просто перечислить идентификатор формы в рендере недостаточно (кажется), мне пришлось также добавить идентификатор панели и некоторые другие ошибки, связанные с богатыми лицами, вызывающие эту проблему. Мне удалось заставить его работать с некоторыми изменениями следов и ошибок в clientID. Спасибо за ваше время. - person kosa; 16.06.2012

вот связанная ошибка https://community.jboss.org/thread/169542

person Manu de Hanoi    schedule 21.08.2012