我遇到f:ajax标签的问题。我想在点击commandLink后显示和隐藏一些数据,但是我收到错误:
我的代码:
<h:form prependId="false" id="contactDataForm">
<h:commandLink value="Edit" action="#{cc.attrs.userBB.showHideEditForm()}">
<f:ajax render="editableContactData notEditableContactData"/>
</h:commandLink>
<h:panelGroup id="notEditableContactData" rendered="#{cc.attrs.userBB.show == false}">
test1
</h:panelGroup>
test2
</h:panelGroup>
</h:form>
答案 0 :(得分:2)
我认为你得到的错误是因为你试图引用未从f:ajax
呈现的元素,而是:引用h:panelGroup
的包装,可能是也可能不是呈现
包裹notEditableContactData
,基本上如此:
尝试改变
<h:panelGroup id="notEditableContactData" rendered="#{cc.attrs.userBB.show == false}">
test1
</h:panelGroup>
到
<h:panelGroup id="notEditableContactData" rendered="#{cc.attrs.userBB.show == false}">
<h:panelGroup rendered="#{cc.attrs.userBB.show == false}">
test1
</h:panelGroup>
</h:panelGroup>
为其他h:panelGroup
做同样的事情
看看我的这个答案Can you update an h:outputLabel from a p:ajax listener?