h:graphicImage not reRender
У меня есть файл jsf, где у меня есть selectOneMenu и a h:graphicImage. Теперь проблема заключается в том, что я отправляю запрос об обмене через selectOneMenu и хочу повторно отобразить h: graphicImage и хочу показать и скрыть логическое значение в действии. Но это не работает должным образом. На самом деле сначала я очень тщательно исследую это, когда при отправке действия через selectOneMenu логическое значение правильно устанавливается в bean-компоненте, но не устанавливается значение reRender должным образом. Если я обновляю страницу, то она работает должным образом. Любой, кого я могу решить, если я хочу обновить страницу на selectOneMenu actionlistener, то, как я обновляю страницу. Мой код здесь для более подробной информации
<h:selectOneMenu id="stageListID" value="#{mnpBean.stageList.defaultValue}" >
<f:selectItems value="#{mnpBean.stageList.values}"/>
<a4j:support event="onchange" actionListener="#{mnpAction.onStageListChangeAction}" reRender="addBtn1" oncomplete="resetViewConfigs();"/>
</h:selectOneMenu>
код для графического изображения
<h:graphicImage id="addBtn1" url="" rendered="#{mnpBean.showAddButton}" style="cursor:pointer">
<a4j:support id="addRowBtn1" event="onclick" actionListener="#{mnpAction.addMultiNoRingFence}"/>
</h:graphicImage>
код бина здесь
public void onStageListChangeAction(ActionEvent ae) {
mnpBean = getMNPBean();
if ("10".equals(mnpBean.getStatusList().getDefaultValue()) && "010".equals(mnpBean.getStageList().getDefaultValue())) {
mnpBean.setShowAddButton(false);
}else{
mnpBean.setShowAddButton(true);
}
}
Любая помощь в этом отношении
1 ответ
Что ты должен делать:
Оберните
<h:graphicImage/>
в контейнере, как<h:panelGrid/>
<a4j:outputPanel ajaxRendered="true" layout="none" id="imageContainer"> <h:graphicImage id="addBtn1" url="" rendered="#{mnpBean.showAddButton}" style="cursor:pointer"> <a4j:support id="addRowBtn1" event="onclick" actionListener="#{mnpAction.addMultiNoRingFence}"/> </h:graphicImage> <a4j:outputPanel/>
Используйте идентификатор контейнера в качестве цели
reRender
<a4j:support event="onchange" actionListener="#{mnpAction.onStageListChangeAction}" reRender="imageContainer" oncomplete="resetViewConfigs();"/>
По той причине, почему проблема возникает в первую очередь, см. Объяснение здесь