2012-10-03 82 views
0

我想顯示值爲chatBean.selectedUser的模態彈出框的標題。發生的事情是onclick事件在action事件之前被觸發,因此當觸發onclick事件時頁面不刷新。因此,我無法獲取模態彈出的標題,作爲chatBean.selectedUser中包含的值。無論如何,我可以在頁面提交之後顯示值爲chatbean.selectedUser的模態彈出框的標題?哪個事件在動作事件之後被觸發?

這裏是視圖的相關部分:

<h:form> 
    <p:selectOneMenu value="#{chatBean.selectedUser}" id="select"> 
     <f:selectItems value="#{chatBean.friendList}" var="users" itemLabel="#{users.firstName}" itemValue="#{users.firstName}"/> 
    </p:selectOneMenu> 
    <p:commandButton id="basic" value="Basic" onclick="dlg.show()" type="button" action="#{chatBean.refresh}"></p:commandButton>  
    <p:dialog id="modalDialog" header="#{chatBean.selectedUser}" widgetVar="dlg" modal="true" height="100"> 
     <h:outputText value="This is a Modal Dialog." /> 
     <h:inputText></h:inputText> 
    </p:dialog> 
</h:form> 

回答

2

您應該顯示該對話框時,才完成了動作,而不是之前。改爲使用oncomplete屬性。

<p:commandButton ... oncomplete="dlg.show()" /> 

不要忘記在打開它之前明確地更新對話框的內容。我沒有看到你的代碼中的任何地方。也許你正在使用RequestContext#update()什麼的,但通常你會用update這個屬性。

<p:commandButton ... update="modelDialog" oncomplete="dlg.show()" /> 

此外,type="button"是奇怪的。這種方式根本不會被調用,但也許這只是一個粗心的嘗試。去掉它。

+0

哇,它的工作原理。但是,當彈出模式對話框時,我可以使後臺可訪問嗎?彈出模式對話框時,背景中的所有內容都將被禁用。 –

+0

這在模態對話框中很正常。通過刪除'modal =「true」'使它成爲非模態。另請參閱展示示例和文檔。 – BalusC

+0

如果我刪除了'model =「true」',那麼是否可以打開多個模式對話框?其實我試圖設計一個類似於使用JSF的聊天系統的Facebook。 –

相關問題