【问题标题】:p:dialog closes when valueChangeListener is invokedp: 调用 valueChangeListener 时对话框关闭
【发布时间】:2012-12-28 06:36:40
【问题描述】:

我有一个<p:dialog>,其中包含一个<h:selectOneMenu> 和一个valueChangeListener。以下是相关代码:

<p:dialog> 
    <h:form>
        <div>
            <h:selectOneMenu value="#{itemController.itemId}" valueChangeListener="#{itemController.chkItemType}" onchange="submit()">
                <f:selectItems value="#{itemController.itemsList}" />
            </h:selectOneMenu> 
        </div>
    </h:form>
</p:dialog>

当它被调用时,对话框被关闭。我想保持打开状态,只在取消按钮上关闭它。我怎样才能做到这一点?

【问题讨论】:

    标签: jsf dialog primefaces selectonemenu


    【解决方案1】:

    这是预期的行为。您那里的onchange="submit()" 同步提交整个表单,导致完整的页面重新加载。

    您应该改用 ajax 来执行提交。用这个标签替换onchange 属性

    <f:ajax />
    

    &lt;h:selectOneMenu&gt; 内。这样表单将异步提交,默认情况下根本不会重新加载页面。

    根据具体的功能要求which you didn't tell anything about,您可能根本不需要valueChangeListener,而是需要&lt;f:ajax listener&gt;

    <f:ajax listener="#{itemController.chkItemType}" />
    

    如果您想在成功执行 ajax 请求时更新页面的某些部分,请使用其render 属性。

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 2014-11-05
      • 1970-01-01
      相关资源
      最近更新 更多