如何使用Ajax a4j重新呈现panelGroup:支持
首先,我要说我对ajax/jsf显然非常陌生,所以请原谅。首先,我已经阅读了一些richFaces文档,但仍然不清楚“render”和“reRender”之间的区别 我试图实现的是一个包含两个“区域”的页面,默认情况下隐藏/不呈现。当用户选择如何使用Ajax a4j重新呈现panelGroup:支持,ajax,jsf,richfaces,Ajax,Jsf,Richfaces,首先,我要说我对ajax/jsf显然非常陌生,所以请原谅。首先,我已经阅读了一些richFaces文档,但仍然不清楚“render”和“reRender”之间的区别 我试图实现的是一个包含两个“区域”的页面,默认情况下隐藏/不呈现。当用户选择时,将触发对应于此布尔复选框的“区域”的渲染。这似乎比它应该做的工作多得多,也许我错过了一些非常基本的东西 这是我的密码 <h:outputLabel for="saveNote" value="Create Note "/>
时,将触发对应于此布尔复选框的“区域”的渲染。这似乎比它应该做的工作多得多,也许我错过了一些非常基本的东西
这是我的密码
<h:outputLabel for="saveNote" value="Create Note "/>
<h:selectBooleanCheckbox id="saveNote" value="#{noteController.saveNote}" immediate="true" >
<a4j:support event="onchange" reRender="noteArea"/>
</h:selectBooleanCheckbox>
<h:outputLabel for="sendEmail" value="Send Email "/>
<h:selectBooleanCheckbox id="sendEmail" value="#{noteController.sendEmail}" immediate="true">
<a4j:support event="onchange" reRender="emailArea"/>
</h:selectBooleanCheckbox>
这是嵌套在
我试图控制渲染的“区域”如下所示
<h:panelGroup id="noteArea" rendered="#{noteController.saveNote}" layout="block">
这也嵌套在与
相同的h:form
中
请帮帮我,阿贾克斯开始让我发疯了
提前非常感谢 RERERENDER属性将在回发时提供许多客户端ID。这应该是客户端id,而不是
notea
的服务器id
除非在h:form
元素中指定prependId
为false,否则表单id将位于表单中panelGroup id的前面,以生成唯一的客户端id
form1:noteArea
另外,我认为您不想在复选框中将
立即设置为true。非常感谢您的回复!这是一个愚蠢的错误,我添加了entryForm:notea
并删除了immediate=true
,它仍然不起作用,我想我还有一些其他的初学者问题,还有其他建议吗?再次感谢您的快速回复@请尝试检查页面上的标记,查看panelGroup
的客户机id到底是什么。它将在页面上呈现为div。此外,请尝试在布尔管理属性的setter中添加日志语句,以查看它们是否真正正确设置。再次感谢!在检查了元素之后,panelGroup实际上是一个组件,因为它嵌套在paneGrid中,我想是吧?我在div上做了一级的重播,一个rich:form,现在效果很好,再次感谢你!