我有用于编辑用户的dataTable。
我在每一行都有commandLink,用于打开带有所选用户数据的模态对话框进行编辑。
在该对话框中,我有commandButton来保存用户。
我在刷新dataTable并为用户显示新编辑的值时遇到问题。
tty
我按照BalusC对主题finding out id of component的回答,并且在服务器日志中没有错误。
当我点击保存按钮时,我调用了支持bean方法:
<p:commandButton value="Save" action="#{usersBean.updateUser()}" onclick="PF('editUserDlg').hide();" update=":adminForm:adminTabView:usersDataTable" styleClass="ui-priority-primary" style="float: right;" />
并且已正确保存已编辑的用户(我已在数据库中签入)。问题是在关闭模态对话框后,我在dataTable中看不到新编辑的用户值。 当我刷新页面时,我看到了用户的新值。
当我在updateUser(user)之后添加调用@PostConstruct init()方法时;我在dataTable中看到了更改的值,但我不确定这是否是正确的方法。
答案 0 :(得分:0)
谢谢Kukeltje, 我将在updateUser()方法之后调用init()。
答案 1 :(得分:-1)
我不会调用init方法,只有在将bean构造为注释状态后才能调用此方法。
尝试调用remoteCommand而不是直接关闭对话框,刷新dataTable。之后,您可以从该命令关闭对话框。这样的事情。
<p:remoteCommand name="updateContent" update="table"
oncomplete="PF('dialog').hide();" />
没有直接尝试过此解决方案,但我认为应该可行。我用这种方法解决了类似的问题。
编辑:正如Kukeltje所述,您还必须刷新dataModel,以便dataTable接收新数据。您可以将一个actionListener添加到remoteCommand来执行此操作。