Jsf primefaces对话框在显示后消失
我有一个命令按钮和一个对话框。问题是对话框出现后,它消失了(1-2毫秒后)。我的commandbutton或其对话框有问题吗Jsf primefaces对话框在显示后消失,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我有一个命令按钮和一个对话框。问题是对话框出现后,它消失了(1-2毫秒后)。我的commandbutton或其对话框有问题吗 <p:commandButton id="showDetailsButton" title="Details" onclick="details.show();" process="@this" update=":tabView:myForm:myDialogId"
<p:commandButton id="showDetailsButton"
title="Details"
onclick="details.show();"
process="@this"
update=":tabView:myForm:myDialogId"
icon="ui-icon-search">
</p:commandButton>
<p:dialog id="myDialogId"
header="Details"
widgetVar="details"
resizable="false"
height="600"
width="450"
>
//some stuff
</p:dialog>
//一些东西
默认情况下,
呈现为
<button type="submit" ....> ... </button>
从commandbutton中删除进程和更新。它们刷新页面/部分。你不希望这样。将onclick改为oncomplete,现在它工作得很好
<p:commandButton id="showDetailsButton"
title="Details"
oncomplete="details.show();"
process="@this"
update=":tabView:myForm:myDialogId"
icon="ui-icon-search">
我认为OP的代码不完整。仅当OP使用了
ajax=“false”
或update=“someIdCoveringDialog”
等时,对话框才会消失。但是,当前的代码没有做到这一点。也许OP忘记了
。浏览器行为未指定。哎呀@巴卢斯,你说得对。我错过了命令按钮的默认ajax行为。是的,如果容器本身正在更新,对话框将消失。所以总的来说,我同意这个问题缺少细节!很明显,在他的问题中有一个更新(滚动到正确的进程=“@this”update=“:tabView:myForm:myDialogId”进程
属性不能这样做,而且已经没有更新
属性。在他的代码片段中,我清楚地看到一条更新语句:update=“:tabView:myForm:myDialogId”(向右滚动)关于@roel,你说得对。我想他确实想在单击时更新对话框的内容。也许他应该更新对话框内的容器,而不是对话框本身。多么糟糕的代码片段,请编辑,以便我收回否决票。毕竟,他显然想在显示对话框之前更新对话框的内容(例如,显示当前选定的项目)。解决方案是不删除更新
。此外,过程
属性根本不会刷新该部分。请阅读@BalusC对我的答案的评论。您需要在问题中提供更多详细信息!
<p:commandButton id="showDetailsButton"
title="Details"
oncomplete="details.show();"
process="@this"
update=":tabView:myForm:myDialogId"
icon="ui-icon-search">