2013-02-19 50 views

回答

2

爲此,您可以對網頁B添加AJAX裝載第B你有這樣的事情:

<h:head> 
    <script type="text/javascript"> 
    function onLoadCallback(data) { 
     if (data.status == "begin") { 
     dialogWidget.show(); 
     } else { 
     dialogWidget.hide(); 
     } 
    } 
    </script> 
</h:head> 
<h:body> 
    <f:ajax event="load" listener="#{bean.onload}" onevent="onLoadCallback" render=":include1"/> 

    <h:panelGroup id="include1"> 
    <h:panelGroup id="include2" rendered="#{bean.loaded}"> 
     <ui:include src="realPageB.xhtml"/> 
    </h:panelGroup> 
    </h:panelGroup> 

    <p:dialogid="dialog" widgetVar="dialogWidget" modal="true"> 
    Loading 
    </p:dialog> 
</h:body> 

有了這個,你用AJAX(速度快),最初只裝載頁面,你叫方法更新面板哪些組實際頁面。在加載過程中,您將看到模態對話框(您也可以使用p:ajaxStatus進行試驗)。在豆initali loaded是假的,之後onload方法被稱爲更新loaded爲true:

private loaded; 

// getters and setters 

public void onload(AjaxBehaviourEvent event) { 
    loaded = true; 
} 
+0

感謝Partlov。 – Danijel 2013-06-26 08:30:30

+0

我正在嘗試,但不起作用。 'onLoadCallback(data)'中的'data'是什麼? – Danijel 2013-07-02 15:07:55

+0

由於某些原因,它仍然無法正常工作。 'onLoadCallback'永遠不會執行。 ? – Danijel 2013-07-02 15:40:55

相關問題