0

在我的项目中,我有一个对话框,其中有一些用于数据网格内项目的复选框和一个将其添加到列表中的命令按钮。

在页面中,我有一些带有 JSF 验证的字段。

我目前的功能是,当用户单击页面中的命令按钮时,应该出现该对话框。用户将通过复选框选择一些项目,然后单击对话框的添加按钮。然后对话框将关闭,该项目将添加到页面中的表格中。

现在我想添加更多功能,例如,每当用户打开该对话框时,他应该始终选择那些他已添加到表中的项目。为此,我在命令按钮中通过 ajax 调用一个方法,该方法会打开对话框并更新所有复选框。

问题是由于我的页面上的验证我无法通过验证。我还在命令按钮中保留了 immediate="true" 。但在这种情况下,我无法在更新后选中复选框。

我通过 HashMap 获得的复选框的 PS 值。我正在使用 JSF 和 primefaces

4

1 回答 1

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 放在视图范围内,以便在同一视图上跨回发维护状态。

于 2013-05-09T14:06:39.297 回答