4
我有取消Ajax請求的問題。我們的應用程序界面內置RF。取消RichFaces中的Ajax請求
在進度條模式中,應該有取消按鈕 - 例如,中斷當前操作,例如 取消數據庫的填充控制。如何做到這一點?
我嘗試使用重新加載頁面,帶有「if」條件的getters控件的標誌以及使用「bypassUpdates」而沒有正面效果的標誌。
在此先感謝您的幫助
XHTML(按鈕):
<a4j:commandButton id="showData"
value="View" styleClass="hBtn"
disabled="#{events.isButtonsDisabled}"
oncomplete="if (#{facesContext.maximumSeverity==null})
{window.open('/seed/pages/data.jsf','DATA')};"
actionListener="#{events.actionShow}"/>
JAVA:(按鈕):
public void actionShow(ActionEvent evt) {
//Some logic, getting data from database
}
XHTML(主頁 - 顯示等待彈出)
<a4j:form>
<a4j:status id="ajaxStat"
onstart="Richfaces.showModalPanel('waitPanel');"
onstop="#{rich:component('waitPanel')}.hide()" />
</a4j:form>
XHTML (彈出):
<rich:modalPanel id="waitPanel" autosized="true" moveable="false"
minWidth="250" styleClass="popup">
<f:facet name="header">
<h:panelGroup>
<h:outputText value="Operation in progress"></h:outputText>
</h:panelGroup>
</f:facet>
<f:facet name="controls">
<h:panelGroup>
<h:graphicImage value="../images/icons/action_close.gif" styleClass="hidelink" id="hidelink"/>
<rich:componentControl for="waitPanel" attachTo="hidelink" operation="hide" event="onclick"/>
</h:panelGroup>
</f:facet>
<a4j:form id="msgFrm" ajaxSubmit="true">
<h:outputText value="Please wait..."/>
<h:graphicImage styleClass="progressBar" value="../images/indicatorbar.gif"/>
<a4j:commandButton value="Cancel" type="button"
onclick="#{rich:component('waitPanel')}.hide()"
action="#{main.cancelAction}"
bypassUpdates="true"/>
</a4j:form>
</rich:modalPanel>
JAVA(彈出):
public void cancelAction(){
//there was setter for true/false flag for actionShow() here, now there is nothing here (it was not working)
}
進入細節,我需要停止java backing bean完成請求。 – Marcin
支持bean ...可以在啓動批處理時將變量設置爲true,並且應該在取消作業後立即將其設置爲false?您的支持bean然後可以使用該變量來決定是否繼續。 –
我試過了,它不起作用 – Marcin