当我单击按钮handler.toggleCreatingTheme()被调用,但outputPanel没有渲染。当我刷新页面(f5)时,会显示面板的内容。
<a4j:commandButton styleClass="simple-submit-button"
action="#{handler.toggleCreatingTheme()}"
rendered="#{!handler.creatingTheme}"
value="txt"
immediate="true"
render="newThemeForm" oncomplete="initEditor()" status="statusWait" />
<a4j:outputPanel id="newThemeForm" ajaxRendered="true" rendered="#{handler.creatingTheme}">
这个标签都在h:form标签中,只有一个h:form。
如何让页面自行刷新,以便在我点击按钮时呈现面板?
答案 0 :(得分:1)
将newThemeForm
嵌入另一个a4j:outputPanel并渲染它而不是reRendering newThemeForm
。这是因为newThemeForm
在尝试渲染时不会出现在DOM中rendered
}属性仍为false
。
像:
<a4j:outputPanel id="outerPanel>
<a4j:outputPanel id="newThemeForm" rendered="#{bean.booleanvalue}">
</a4j:outputPanel>
</a4j:outputPanel>
渲染outerPanel
而不是newThemeForm
。
答案 1 :(得分:0)
我已经尝试过AhamedMustafaM提到的方式,但它并没有与我合作,所以我搜索并尝试了一会儿所以最后我得使其解决方法,这里是如何
<a4j:commandButton id="clear" value="Clear" action="#{handler.clearData}" immediate="true" >
<!-- dummy call just to make it work -->
<a4j:actionListener listener="#{ViewerController.test}"/>
<f:ajax render="dataGroupPanel"/>
</a4j:commandButton>