我有一个组件,我想在用户点击commandButton
后显示/隐藏。AJAX渲染属性不适用于渲染=“false”组件
是这样的:
<h:commandButton id="showButton" value="#{bean.wasPressed ? 'Hide' : 'Show'}">
<f:ajax listener="#{bean.toggle()}" render="explanation showButton" />
</h:commandButton>
和
<h:panelGroup id="explanation" rendered="#{bean.wasPressed}">
<h:outputText value="something" />
</h:panelGroup>
的bean.toggle()
只是适当的wasPressed
属性设置为true或false。我正在使用<h:form prependId="false">
。
问题是我的按钮的render
属性的值。它明确列举了:explanation
和showButton
。
只要showButton
总是存在(它只会更改其标签),则explanation
仅在wasPressed
属性为true时才存在。否则,它说:
malformedXML:在更新:explanaition没有找到
我怎样才能解决这个问题?
我不想回复隐藏源代码中的元素,所以我不想使用任何jQuery切换( - )或任何隐藏元素使用style="display: none"
或任何这些东西。
它甚至可以在JSF 2.1中实现吗?
包装添加到panelGroup中有一个ID,并指它....你不能指不会呈现JSF elememt的http://计算器。 com/a/10707789/617373 – Daniel
工程就像一个魅力,谢谢!你能否给这个问题添加答案,以便我能够接受它? –
不客气。 – Daniel