2013-05-09 29 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