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()" />
<rich
opupPanel id="ajaxLoadingModalBox" minHeight="200"
minWidth="450" height="100" width="250" zindex="2000">
<f:facet name="header">
<h
utputText value="Bitte warten" />
</f:facet>
<h
utputText 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" />
</rich
opupPanel>
</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()" />
<rich
minWidth="450" height="100" width="250" zindex="2000">
<f:facet name="header">
<h
</f:facet>
<h
<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" />
</rich
</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: