S
Sym
Gast
Hallo zusammen,
ich möchte, dass nach einer gewissen Zeit ein Fenster aufgeht, wenn der Ajaxrequest zu lange dauert. Gelöst habe ich das wie folgt:
[XML]<h:form id="form" prependId="false"
enctype="#{multipart == true ? 'multipart/form-data' : 'application/x-www-form-urlencoded'}"
acceptcharset="utf-8">
<script type="text/javascript">
var infoWindowAMShown = false;
var infoWindowAMTimer;
function showModalInfoWindow()
{
infoWindowAMTimer = setTimeout("if(!infoWindowAMShown){#{rich:component('ajaxLoadingModalBox')}.show();infoWindowAMShown=true;}", 500);
}
function hideModalInfoWindow()
{
if (infoWindowAMShown){#{rich:component('ajaxLoadingModalBox')}.hide();infoWindowAMShown=false;}else{if(infoWindowAMTimer)clearTimeout(infoWindowAMTimer);}
}
</script>
...
<a4j:status onstart="showModalInfoWindow()"
onstop="hideModalInfoWindow()"
onsuccess="hideModalInfoWindow()"
onerror="hideModalInfoWindow()" />
<richopupPanel id="ajaxLoadingModalBox" minHeight="200"
minWidth="450" height="100" width="250" zindex="2000">
<f:facet name="header">
<hutputText value="Bitte warten" />
</f:facet>
<hutputText value="Ihre Anfrage wird bearbeitet. Bitte warten..." />
<div class="center">
<h:graphicImage value="/images/spinner.gif" alt="spinner"
width="100px" styleClass="right" />
</div>
<a4j:commandButton value="Abbrechen"
onclick="#{rich:component('ajaxLoadingModalBox')}.hide()"
styleClass="cancel" />
</richopupPanel>
</h:form>[/XML]
Das funktioniert in der Regel auch:
Richfaces a4j:commandButton:
[XML]<a4j:commandButton action="#{userAdministration.search()}"
value="Suchen" styleClass="accept acceptBtn button"
render="userTableRegion" />[/XML]
JSF 2 h:commandButton:
[XML]<h:commandButton action="#{userAdministration.search()}"
value="Suchen" styleClass="accept acceptBtn button">
<f:ajax execute="@this" render="userTableRegion" />
</h:commandButton>[/XML]
Wenn ich das jedoch in einer Tabelle nutzen möchte, klappt das nicht. Das Fenster wird nicht geschlossen.
In einer rich:column befinden sich die Buttons:
[XML]<h:commandButton rendered="#{not user.active}"
action="#{userAdministration.acticateUser(user)}"
render="userTableRegion" value="Aktivieren" styleClass="accept"
immediate="true">
<f:ajax execute="@this" />
</h:commandButton>[/XML]
Hier geht das Waitingpanel auf, die Tabelle wird nicht neu gezeichnet und das Panel schließt sich nicht.
[XML]<h:commandButton rendered="#{user.active}"
action="#{userAdministration.deacticateUser(user)}"
value="Deaktivieren" styleClass="cancel" immediate="true">
<f:ajax execute="@this" render=":form:userTableRegion" />
</h:commandButton>[/XML]
Hier geht das Waitingpanel auf, die Tabelle wird auch neu gezeichnet, aber das Panel schließt sich nicht.
Hat jemand eine Idee?
ich möchte, dass nach einer gewissen Zeit ein Fenster aufgeht, wenn der Ajaxrequest zu lange dauert. Gelöst habe ich das wie folgt:
[XML]<h:form id="form" prependId="false"
enctype="#{multipart == true ? 'multipart/form-data' : 'application/x-www-form-urlencoded'}"
acceptcharset="utf-8">
<script type="text/javascript">
var infoWindowAMShown = false;
var infoWindowAMTimer;
function showModalInfoWindow()
{
infoWindowAMTimer = setTimeout("if(!infoWindowAMShown){#{rich:component('ajaxLoadingModalBox')}.show();infoWindowAMShown=true;}", 500);
}
function hideModalInfoWindow()
{
if (infoWindowAMShown){#{rich:component('ajaxLoadingModalBox')}.hide();infoWindowAMShown=false;}else{if(infoWindowAMTimer)clearTimeout(infoWindowAMTimer);}
}
</script>
...
<a4j:status onstart="showModalInfoWindow()"
onstop="hideModalInfoWindow()"
onsuccess="hideModalInfoWindow()"
onerror="hideModalInfoWindow()" />
<richopupPanel id="ajaxLoadingModalBox" minHeight="200"
minWidth="450" height="100" width="250" zindex="2000">
<f:facet name="header">
<hutputText value="Bitte warten" />
</f:facet>
<hutputText value="Ihre Anfrage wird bearbeitet. Bitte warten..." />
<div class="center">
<h:graphicImage value="/images/spinner.gif" alt="spinner"
width="100px" styleClass="right" />
</div>
<a4j:commandButton value="Abbrechen"
onclick="#{rich:component('ajaxLoadingModalBox')}.hide()"
styleClass="cancel" />
</richopupPanel>
</h:form>[/XML]
Das funktioniert in der Regel auch:
Richfaces a4j:commandButton:
[XML]<a4j:commandButton action="#{userAdministration.search()}"
value="Suchen" styleClass="accept acceptBtn button"
render="userTableRegion" />[/XML]
JSF 2 h:commandButton:
[XML]<h:commandButton action="#{userAdministration.search()}"
value="Suchen" styleClass="accept acceptBtn button">
<f:ajax execute="@this" render="userTableRegion" />
</h:commandButton>[/XML]
Wenn ich das jedoch in einer Tabelle nutzen möchte, klappt das nicht. Das Fenster wird nicht geschlossen.
In einer rich:column befinden sich die Buttons:
[XML]<h:commandButton rendered="#{not user.active}"
action="#{userAdministration.acticateUser(user)}"
render="userTableRegion" value="Aktivieren" styleClass="accept"
immediate="true">
<f:ajax execute="@this" />
</h:commandButton>[/XML]
Hier geht das Waitingpanel auf, die Tabelle wird nicht neu gezeichnet und das Panel schließt sich nicht.
[XML]<h:commandButton rendered="#{user.active}"
action="#{userAdministration.deacticateUser(user)}"
value="Deaktivieren" styleClass="cancel" immediate="true">
<f:ajax execute="@this" render=":form:userTableRegion" />
</h:commandButton>[/XML]
Hier geht das Waitingpanel auf, die Tabelle wird auch neu gezeichnet, aber das Panel schließt sich nicht.
Hat jemand eine Idee?
Zuletzt bearbeitet von einem Moderator: