我有一个命令按钮和一个对话框。问题是对话框出现后就消失了(1-2 毫秒后)。我的命令按钮或其对话框有问题吗?
<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>
将 onclick 更改为 oncomplete,现在工作正常。
<p:commandButton id="showDetailsButton"
title="Details"
oncomplete="details.show();"
process="@this"
update=":tabView:myForm:myDialogId"
icon="ui-icon-search">
默认情况下,
<p:commandButton>
呈现为
<button type="submit" ....> ... </button>
编辑:如果您已通过指定
ajax
禁用了ajax=false
行为,请阅读下面的评论。
因此它将触发回发。因此,您的页面向服务器发出
POST
请求并刷新。
顺便说一句,这里不需要 PrimeFaces 命令按钮,只需使用
<input type="button" onclick="details.show()" value="Details"/>
从命令按钮中删除进程和更新。他们刷新页面/部分。而你不希望这样。
如果您在表单标记内创建了另一个表单,则应确保它在外部,因为不知情的更新操作可能会中断该过程。