Ich habe diesen Testfall erstellt, der mein Problem isoliert. Die Aktion a4j: commandLink wird nicht ausgeführt, nachdem die Abfrage eine Ajax-Aktualisierung durchgeführt hat. Es wird ausgeführt, wenn wir das modalPanel vor dem ReRender der Umfrage schließen.a4j: CommandLink funktioniert nicht mehr nach dem ReRender
Irgendwelche Vorschläge? Danke im Voraus.
test.xhtml:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:fnc="http://eyeprevent.com/fnc">
<a4j:outputPanel id="testing">
<rich:modalPanel id="examinationPanel" autosized="true" width="450" rendered="#{test.condition2}">
<f:facet name="header">
<h:outputText value="View Examination Images" />
</f:facet>
<f:facet name="controls">
<h:panelGroup>
<a4j:form>
<a4j:commandLink action="#{test.close}">
<h:graphicImage value="/images/modal/close.png" id="hideExaminationPanel" styleClass="hidelink" />
</a4j:commandLink>
</a4j:form>
<rich:componentControl for="examinationPanel" attachTo="hideExaminationPanel" operation="hide" event="onclick" />
</h:panelGroup>
</f:facet>
<a4j:form>
<h:panelGrid columns="1" id="timeoutText">
<h:outputText id="remainingtime" value="condition1" rendered="#{test.condition1}" />
<h:outputText id="timer" value="condition2" rendered="#{test.condition2}" />
</h:panelGrid>
<a4j:poll id="poll" interval="5000" enabled="#{test.poll}" reRender="poll,timeoutText" />
</a4j:form>
</rich:modalPanel>
Link-
TestBean.java
import org.apache.log4j.Logger;
public class TestBean {
private boolean condition1=false;
private boolean condition2=true;
private boolean poll=true;
public void close(){
Logger.getLogger("com.eyeprevent").info("here!");
poll=false;
condition1=true;
condition2=false;
}
public boolean isCondition1() {
return condition1;
}
public void setCondition1(boolean condition1) {
this.condition1 = condition1;
}
public boolean isCondition2() {
return condition2;
}
public void setCondition2(boolean condition2) {
this.condition2 = condition2;
}
public boolean isPoll() {
return poll;
}
public void setPoll(boolean poll) {
this.poll = poll;
}
}
TestBean ist Sitzung scoped. Richfaces Version 3.3.2.SR1
Und auch in Chrome 5.0.322.2 Dev wird das ModalPanel nicht angezeigt. Es funktioniert unter FF und IE7.
Ich habe diesen Testfall aus einer Komponente in meiner Anwendung, die dieses Problem hat. Die Komponente hat domElementAttachment auf "parent", aber die Verknüpfung funktioniert nicht. Ich werde versuchen, das Formular zu verschieben ... – pakore
Das Verschieben des Formulars außerhalb des ModalPanel hilft auch nicht. Danke trotzdem für die Antwort. – pakore
@pakore - Ich meinte - verschiebe das Formular nach draußen und entferne die zweite Form. Hast du das versucht? – Bozho