2013-05-09 63 views
0

在我的項目中,我有一個對話框,其中我有一些數據網格內的項目和一個命令按鈕將複選框添加到列表中的複選框。如何交叉驗證階段並獲得選中對話框的複選框?

而在頁面中我有一些JSF驗證字段。

我現在的功能就像是當用戶在對話框應該出現的頁面中單擊一個commandButton。用戶將通過複選框選擇一些項目,然後單擊對話框的添加按鈕。然後關閉對話框,該項目將被添加到頁面中的表格中。

現在我想添加一些更多的功能一樣,每當用戶打開他應該得到的項目總是選擇該對話框中,他已經添加到表。爲此,我通過ajax在命令按鈕中調用一個方法,該按鈕打開對話框並更新所有複選框。

問題是由於我的頁面上的驗證我無法通過驗證。我還在命令按鈕中保持立即=「真」。但在這種情況下,我無法在更新後選中複選框。

P.S.複選框的值我通過HashMap獲得。我使用JSF和primefaces

回答

1

只要把對話框,你不想提交/驗證所有,並給它自己的形式形式之外。

<h:form> 
    ... (button which opens dialog is in this form) 
</h:form> 

<p:dialog> 
    <h:form> 
     ... (yeah, dialog has its own form!) 
    </h:form> 
</p:dialog> 

這樣,當您提交對話框的表單時,其他表單不會被打擾。不要忘記將「父」表單的託管bean放在視圖範圍中,以便在同一視圖的各個回發中保持狀態。

+0

嗨@BalusC感謝您的答覆。但在我的項目中,我們有一個template.xhtml。我們所有的頁面都始終在該模板中。該模板具有這種形式。所以一切都會在這種形式之內。 – 2013-05-10 06:26:35

+0

昨天我發現這個問題有用http://stackoverflow.com/questions/9291129/how-to-disable-jsf-valitadions-temporarily和我的問題我也由PARAM禁用驗證提出解決方案。 – 2013-05-10 06:29:47

+0

只需修復該模板,以免再沒有「上帝形式」惡習。 – BalusC 2013-05-10 11:30:13