primefaces 对话框出现后消失

问题描述 投票:0回答:4

我有一个命令按钮和一个对话框。问题是对话框出现后就消失了(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>
jsf jsf-2 primefaces
4个回答
10
投票

将 onclick 更改为 oncomplete,现在工作正常。

<p:commandButton id="showDetailsButton"
 title="Details"
 oncomplete="details.show();"
 process="@this"
 update=":tabView:myForm:myDialogId"                                         
 icon="ui-icon-search">                          


3
投票

默认情况下,

<p:commandButton>
呈现为

<button type="submit" ....> ... </button>

编辑:如果您已通过指定

ajax
禁用了
ajax=false
行为,请阅读下面的评论。

因此它将触发回发。因此,您的页面向服务器发出

POST
请求并刷新。

顺便说一句,这里不需要 PrimeFaces 命令按钮,只需使用

<input type="button" onclick="details.show()" value="Details"/>

0
投票

从命令按钮中删除进程和更新。他们刷新页面/部分。而你不希望这样。


0
投票

如果您在表单标记内创建了另一个表单,则应确保它在外部,因为不知情的更新操作可能会中断该过程。

© www.soinside.com 2019 - 2024. All rights reserved.