preRenderView и ajax - PullRequest
       0

preRenderView и ajax

1 голос
/ 14 января 2012

У меня есть preRenderView, прикрепленный к компоненту A. Есть другой компонент B, который имеет ajax.Ajax отобразит скрытый компонент, в котором есть несколько текстовых полей.Проблема в том, что ajax не рендерит поле inputText

<h:form....>
<ui:composition...>
<f:event type="preRenderView" listener="#{bean.action}">
...........
<ui:composition/>

<ui:composition...>
<h:selectOneRadio....>
<f:ajax render="inputTextId"../>
<h:selectOneRadio/>
<ui:fragment rendered="#{condition}">
<h:inputText id="inputTextId" ...../>
<ui:fragment/>
<ui:composition/>
<h:form/>

1 Ответ

2 голосов
/ 15 января 2012

Повторный рендеринг происходит на стороне клиента с помощью JavaScript после получения ответа Ajax.Требуется, чтобы сгенерированный HTML-вывод компонента, который будет обновлен, был уже на стороне клиента.В вашем случае, однако, его никогда нет в сгенерированном выводе HTML.Вам необходимо поменять местами атрибуты rendered и id.

<h:selectOneRadio ...>
    <f:ajax render="inputTextWrapperId" />
</h:selectOneRadio>
<h:panelGroup id="inputTextWrapperId" >
    <h:inputText id="inputTextId" rendered="#{condition}" />
</h:panelGroup>

Эта проблема не связана с событием предварительного просмотра.У вас будет точно такая же проблема, когда вы удалите ее.

См. Также:

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