2014-07-14 111 views
0

我有一個按鈕,讓我們把它稱爲「Button1的」:OnStart方法被調用後的onComplete方法

<p:commandButton icon="ui-icon-document" 
    value="Button1" 
    onstart="#{bean.populateDependancies(item)}" 
    update="myDialog" 
    oncomplete="dialogWidget.show();"> 
</p:commandButton> 

Button1應該打開一個dialog,但之前打開它,我希望它填充目標的質子選取列表對話框中有一些值(這項工作是通過方法populateDependancies(item)完成的)。

但實際上該方法populateDependancies(item)被調用的時候我關閉對話和的primefaces的cellEditor(甚至取消按鈕)validateEdition按鈕(注:Button1被放置在一個可編輯的數據表的列) 。

我希望我清楚地說明了問題...請讓我知道,如果事情仍不清楚


這是我的頁面結構,也許它可以幫助: enter image description here

,這裏是我的方法:

public void populateDependancies(Release release) { 
    if (release != null) { 
     if (rfcsDualListModel.getTarget() != null || !rfcsDualListModel.getTarget().isEmpty()) { 
      rfcsDualListModel.setTarget(null); 
     } 
     List<Rfc> rfcDejaAssocies = release.getRfcs(); 
     rfcsDualListModel.setTarget(rfcDejaAssocies); 
    } 
} 
+0

嘗試使用「actionListener」而不是「onstart」 –

+0

已經嘗試和按鈕根本不調用該方法 – Siho

回答

1

onstart執行javascript代碼,就像oncomplete一樣。 #{bean.populateDependancies(item)}必須是actionactionListener屬性的值。

編輯:此外,process="@this"屬性和值必須使用,爲了不提交整個表格。

+0

我已經嘗試過action和actionListener而不是onStart,並且沒有人工作。他們不會調用這個方法。這很奇怪,因爲我檢查了方法簽名,它是正確的 – Siho

+0

你可以粘貼整個窗體代碼'Button1'是嵌套在? –

+0

如果我粘貼所有的代碼,這將是數百行...... – Siho

0

問題通過使用actionListenerprocess="@this"屬性的命令按鈕解決..但我真的不知道爲什麼它只有通過添加process="@this" ..如果有人知道原因..請讓我知道。謝謝大家。

+0

下次發佈[MCVE](http://stackoverflow.com/help/mcve),你會更快得到更好的幫助。另請參閱我們的[jsf信息頁面](http://stackoverflow.com/tags/jsf/info) – perissf

+0

謝謝@perissf,但我認爲我發佈的代碼足以說明問題。不是嗎? – Siho

+0

默認是@form,這聽起來很奇怪。嘗試再次刪除 –