我有一个主细节ui,显示了dataTable中的一些项目。如果选择了某个项目,则会在表单中显示详细信息。 如果表单中存在无效数据,我想阻止用户从dataTable中选择新项目。验证错误显示在详细信息方面,并且在验证错误存在时表单不会更新(似乎是一个内置行为)。 不幸的是,我无法阻止用户在dataTable中选择另一行。我试过了:
<p:dataTable ...>
<p:ajax event="rowSelect" update="someId" />
<p:ajax event="rowUnselect" update="someId" oncomplete="if (args && args.validationFailed) return false;" process=":detialsFormId" />
...
</p:dataTable>
但这不起作用。据我所知,oncomplete
只有args
变量可用。我认为rowSelect
和rowUnselect
都为时已晚。
也许有另一种方法?考虑一个远程命令,它在验证失败时设置t-1选择。但也许还有另一个更好的解决方案?
此致 奥利弗