Change By:
|
Karsten Wutzke
(13/Jun/12 8:08 AM)
|
Workaround Description:
|
Use
plain
a4j:ajax
onclick="" (this might not be satisfying in every situation)
|
Description:
|
The following code displays a root node with a name + link to display a popup {code} <h:body> <h:form> <rich:tree value="#{nodeManager.rootTreeNode}" var="treeNode" nodeType="#{treeNode.emitCode}" toggleType="client"> <rich:treeNode type="root"> <h:panelGrid columns="4"> <h:outputText value="#{treeNode.name}" id="node-name" /> <rich:tooltip value="The name is..." direction="bottomRight" target="node-name" /> <h:commandLink value="Add..."> <rich:tooltip value="Add chapter" direction="bottomRight" /> <a4j:ajax render="root-add-chapter-popup" oncomplete="#{rich:component('root-add-chapter-popup')}.show()" /> </h:commandLink> </h:panelGrid> </rich:treeNode> </rich:tree> <rich:popupPanel modal="true" domElementAttachment="form" onmaskclick="#{rich:component('root-add-chapter-popup')}.hide(); return false;" id="root-add-chapter-popup"> <f:facet name="header"> <h:outputText value="Add Chapter" /> </f:facet> <h:panelGrid columns="1" style="margin: 0px auto;"> <h:commandButton value="Rerender form and hide!"> <!--a4j:ajax render="@form" /--> <!-- works --> <!--f:ajax render="@form" /--> <!-- breaks tooltips --> <a4j:ajax render="@form" oncomplete="#{rich:component('root-add-chapter-popup')}.hide(); return true;" /> <!-- breaks tooltips --> </h:commandButton> </h:panelGrid> </rich:popupPanel>
</h:form> </h:body> {code}
When rerendering the form (
after clicking
h:commandButton
render="@form"
) via
plain
f:ajax
onclick=""
or a4j:ajax oncomplete="" the rich:tooltip elements on the rich:treeNode are lost. Note that
plain
a4j:ajax
onclick=""
is working.
It's not clear why oncomplete on a4j:ajax and plain f:ajax have such side effects.
|
Forum Reference:
|
https://community.jboss.org/thread/201003, https://community.jboss.org/message/741200#741200
|