【问题标题】:primefaces dialog disappears after show upprimefaces对话框出现后消失
【发布时间】:2013-05-17 06:40:41
【问题描述】:

我有一个命令按钮和一个对话框。问题是对话框出现后消失(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>

【问题讨论】:

  • 请在我的回答中阅读@BalusC 的 cmets。您需要在问题中提供更多详细信息!

标签: jsf jsf-2 primefaces


【解决方案1】:

默认情况下,&lt;p:commandButton&gt; 呈现为

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

编辑: 如果您已通过指定 ajax=false 禁用了 ajax 行为,请阅读下面的 cmets。

因此它将触发Post Back。因此,您的页面向服务器发出 POST 请求并刷新。

顺便说一句,这里不需要 PrimeFaces commandButton,只需使用

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

【讨论】:

  • 我相信 OP 的代码不完整。仅当 OP 使用 ajax="false"update="someIdCoveringDialog" 左右时,该对话框才会消失。但是,当前的代码并没有这样做。也许OP忘记了&lt;h:form&gt;。然后未指定浏览器行为。
  • 糟糕! @BalusC 你是对的。我错过了命令按钮的默认 ajax 行为。是的,如果容器本身正在更新,对话框就会消失。所以总的来说,我同意这个问题缺少细节!
  • 显然他的问题是有更新(滚动到正确的 process="@this" update=":tabView:myForm:myDialogId"
【解决方案2】:

将 onclick 更改为 oncomplete,现在它运行良好。

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • process 属性不这样做,并且已经没有 update 属性。
    • 在他的代码片段中,我清楚地看到了一条更新语句:update=":tabView:myForm:myDialogId"(向右滚动)
    • 你说得对@roel。我想他确实想在点击时更新对话框的内容。也许他应该更新对话框内的容器而不是对话框本身
    • 多么糟糕的代码 sn-p,请编辑,以便我可以收回反对票。
    • 毕竟,他显然想在显示之前更新对话框的内容(例如显示当前选中的项目)。解决方案是不删除update。此外,process 属性根本不会刷新该部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    相关资源
    最近更新 更多