Primefaces 3.5对话框';s';可见';属性在ajax';关闭';事件

Primefaces 3.5对话框';s';可见';属性在ajax';关闭';事件,ajax,primefaces,dialog,Ajax,Primefaces,Dialog,解决方案。(在bean中显示和隐藏对话框) 我有一个对话框和显示/隐藏按钮,效果很好。对话框从支持bean读取boolean值,并更新其visible属性(使其显示或隐藏)。在我使用默认的关闭按钮关闭对话框之前,一切正常,该按钮触发ajaxclose事件。从那一刻起,“显示/隐藏”按钮就不起作用,或者更确切地说,对话框不会更新其可见状态。它永远关闭 我发现,在触发ajax事件后,除了dialogvisible属性之外,所有内容都会正确更新。按钮工作正常,它们正确地更新了支持bean(我可以在日

解决方案。(在bean中显示和隐藏
对话框


我有一个
对话框
和显示/隐藏按钮,效果很好。对话框从支持bean读取
boolean
值,并更新其
visible
属性(使其显示或隐藏)。在我使用默认的关闭按钮关闭对话框之前,一切正常,该按钮触发ajax
close
事件。从那一刻起,“显示/隐藏”按钮就不起作用,或者更确切地说,对话框不会更新其可见状态。它永远关闭

我发现,在触发ajax事件后,除了dialog
visible
属性之外,所有内容都会正确更新。按钮工作正常,它们正确地更新了支持bean(我可以在日志文件中看到它),并且对话框面板也正确地更新了(我可以看到屏幕上显示的正确
showDialog
值)

我知道还有其他方法可以显示/隐藏对话框,但我真的很好奇在这种情况下会发生什么-为什么会这样?有没有办法通过从bean读取可见性值来显示对话框(以及在对话框关闭时更新bean值更重要的是什么)

我的XHTML:


showDialog值=#{testBean.showDialog}
测试
和支持bean:

@ManagedBean
@视域
公共类TestBean实现了可序列化{
私有静态最终记录器Logger=LoggerFactory.getLogger(“TB”);
私有布尔显示对话框;
公共布尔值isShowDialog(){
info(“getter isShowDialog={}”,showDialog);
返回显示对话框;
}
public void enableShowDialog(){
showDialog=true;
LOGGER.info(“isShowDialog设置为true”);
}
公共无效禁用ShowDialog(){
showDialog=false;
info(“isShowDialog设置为false”);
}
}

也许您可以隐藏关闭按钮:

closable="TRUE"
或者您可以通过onHide属性更新变量

我刚注意到对话不是形式

找到类似的职位

这是我对你们的看法,它给了我答案: 只需将oncomple=“someDialog.show()”事件添加到按钮,将widgetVar=“someDialog”添加到对话框
据我所知,close changes rendered属性,这就是为什么不能显示它。

也许可以隐藏关闭按钮:

closable="TRUE"
或者您可以通过onHide属性更新变量

我刚注意到对话不是形式

找到类似的职位

这是我对你们的看法,它给了我答案: 只需将oncomple=“someDialog.show()”事件添加到按钮,将widgetVar=“someDialog”添加到对话框
据我所知,close changes rendered属性,这就是为什么不能显示它。

设置
closable
不会更改任何内容。另外,
对话框
不必位于
表单
内。我知道
oncomplete=“dialog.show()”
,但我想从bean中启用或禁用对话框。然后我检查了你的发现,就这样了。谢谢。设置
closable
不会改变任何东西。另外,
对话框
不必位于
表单
内。我知道
oncomplete=“dialog.show()”
,但我想从bean中启用或禁用对话框。然后我检查了你的发现,就这样了。谢谢