我在使用带有Ajax行为的“渲染”属性时遇到了一些问题。我将粘贴代码,所以我认为这将是一个很多更清晰:JSF 2.0 - Ajax和渲染组件
<h:selectOneMenu value="#{registrarVentaController.esCobroChequeString}">
<f:selectItem itemLabel="Efectivo" itemValue="false"/>
<f:selectItem itemLabel="Cheque" itemValue="true"/>
<f:ajax execute="@this" render="@form"/>
</h:selectOneMenu>
<h:panelGroup id="panelMonto">
<span>Monto:</span>
<h:inputText value="#{registrarVentaController.monto}" rendered="#{registrarVentaController.banCobroCheque}"/>
<h:inputText value="#{registrarVentaController.monto}" rendered="#{not registrarVentaController.banCobroCheque}"/>
</h:panelGroup>
我“#{} registrarVentaController”只是查看作用域JSF托管Bean与appropiate制定者/吸气。
这样它的作品,我的意思是,当用户选择选项“侮辱和不尊重”,panelGroup中“panelMonto”将得到更新,我们将看到第一个inputText的,反之,当用户选择选项“检查 “用户将看到第二个inputText。
对于这种方法,我用“F:AJAX”组件,我更新了整个@form获得这种行为的工作,我只是想更新panelGroup中“panelMonto”(使用render =“panelMonto”它不会在所有的工作(:表格名称:我甚至全范围解析尝试panelMonto没有结果)。
我只是想和AJAX =“idComponent”或类似的行为渲染工作,以显示某些部分根据用户的选择。
最好的问候!
注(一个解决方案)
我得到了一个解决方案(以作为输入 JSF rendered is not working 和一点我自己的)。我刚搬到一个新表格中,我对 感兴趣,根据用户选择的内容进行过滤。这样我仍然 使用@form阿贾克斯的渲染,它只会呈现这个新的形式(不是我使用的整体形式 !)Neverthless我仍然想知道 是不是使用@form的解决方案,只是组件ID。
简而言之,'render =“@ form”'工作,但'render =“panelMonto”'不?好的,有更多的观点吗?是不是'panelMonto'组件实际上在另一个'UINamingContainer'组件中,比如'','','',一个复合组件或其他东西?生成的HTML输出中的客户端ID是什么(浏览器中的打开页面,右键单击并查看源代码*以查找它)? –
BalusC
感谢您对这方面的评论。问题是围绕着这些东西,我设法解决它与 ... h:panelGroup>(我所做的更改是放置呈现为panelGroup组件的属性) –