0

我有一个<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>

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

4

1 回答 1

1

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

您应该改用 ajax 来执行提交。onchange仅用此标记替换属性

<f:ajax />

里面<h:selectOneMenu>。这样表单将被异步提交,默认情况下根本不会重新加载页面。

根据具体的功能需求,你没有告诉任何关于.valueChangeListener<f:ajax listener>

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

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

也可以看看:

于 2012-12-28T11:17:21.710 回答