Обновленный атрибут не обновляется при последующих вызовах ajax - PullRequest
1 голос
/ 04 февраля 2012

У меня есть p:commandButton, который вызывает метод bean-объекта в области видимости. Метод устанавливает два строковых поля с именем textA and textB и возвращает.

Как только вызов ajax завершится, появится диалоговое окно. Я ожидаю, что только одна из сеток будет отображаться на основе переменной choice. Его начальное значение choiceA. Что происходит, страница загружается с выбором по умолчанию A, я нажимаю кнопку, метод actionListener устанавливает textA, и появляется диалоговое окно. Как и ожидалось, есть только одна сетка.

Однако, когда я выбираю choiceB, отображается та же самая сетка, gridA. Другими словами, атрибут rendered p:panelGrid s корректно работает только при загрузке страницы, но не обновляется при последующих вызовах ajax. Странно, textA and textB хорошо обновляется.

Ниже приведена соответствующая часть кода.

<h:form>

    <p:selectOneRadio id="optionChoice" value="#{bean.choice}"
        <f:selectItem itemLabel="B" itemValue="choiceB" />
        <f:selectItem itemLabel="A" itemValue="choiceA" />
    </p:selectOneRadio>

    <p:commandButton value="Save"
        actionListener="#{bean.save}"
        update="dialogId"
        oncomplete="ajaxComplete(xhr, status, args)">

</h:form>

...

<p:dialog widgetVar="dialog" id="dialogId">

    <p:tabView id="tabViewX">
        <p:tab id="tabA" title="Tab A">

            <h:panelGrid id="gridA" rendered="#{bean.choice eq 'choiceA'}">
                <p:inputTextarea value="#{bean.textA}" />
                <h:button />
            </h:panelGrid>

            <h:panelGrid id="gridB" rendered="#{bean.choice eq 'choiceB'}">
                <p:inputTextarea value="#{bean.textB}" />
            </h:panelGrid>

        </p:tab>
    </p:tabView>
</p:dialog>

Любые предположения, почему атрибут update p:commandButton обновляет только inputTextArea's value, но не panelGrid's rendered?

Я тоже пробовал update="tabViewX:gridA tabViewX:gridB". Также не работает.

JSF-версия: Mojarra JSF API (javax.faces / 2.1) 2.1.5 (20111123 - SNAPSHOT). Primefaces 3.0.0 - Murat 2 минуты назад редактировать

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