0

我正在考虑将编辑屏幕的工作流程更改为对话框。

概括地说,我们有一个有许多孩子的父实体。这些都在数据表组件中,每个旁边都有“编辑”按钮。单击一个会导致托管 bean 将该单个记录加载到“currentlyEditing”变量中,并返回 null 以便它保持在同一个视图上,并且 ajax 更新先前隐藏的表单区域以显示选定的记录,预先填充以进行编辑。新表单的底部是保存和取消按钮,它们可以满足您的期望。子列表下方的单个按钮(“添加”)导致将空白对象设置到“当前编辑”变量中,并且视图现在显示一个干净的表单。到目前为止,这一切都很标准,对吧?

我的业务用户要求我做的是改变编辑工作流程。他们不想单击按钮,并且以前隐藏的区域出现在子列表下方,而是希望单击按钮以启动包含编辑表单和保存/取消按钮的对话框。所有验证错误/消息都应保留在对话框中。目前尚未决定成功的保存是否应该自动关闭对话框,或者他们是否应该看到成功消息,然后有一个按钮来关闭对话框。有些人建议同时使用“保存”和“保存并关闭”按钮。

我们正在使用 Primefaces 3.5(并且会考虑迁移到 4.0-SNAPSHOT,因为我们的上线时间相当遥远,同时我们也不害怕从源代码构建)。我看到有一个当前<p:dialog组件,但我也看到有一个即将推出的“对话框架”,但我只是不确定它们每个的含义。带有验证消息传递和 managedbean 往返的完整编辑表单,甚至可能从该对话框中启动了额外的对话框,对于<p:dialog本意来说“太多”了吗?对话框架是否旨在解决/用于此类用例?

4

1 回答 1

1

在我看来,你可以用 p:dialog 做到这一点。我以前做过,虽然当我做的时候,对话框框架不存在。由于您将使用单个 bean,因此将对话框中所做的更改应用于表会更容易。此外,由于它在同一页面中,对话框会出现得更快(更好的用户体验)。当您重新打开对话框以防止显示上次编辑的错误时,您需要一些 javascript 来清除验证消息。但是使用 jQuery,这不会是一个问题。

于 2013-05-01T11:24:11.953 回答