0

我正在尝试从 Dialog 执行 ajax 方法,但它没有被执行。

<p:dialog header="Add Product" widgetVar="addProductDialog" modal="true" height="300" width="700" dynamic="true">

   <p:toolbar styleClass="toolBar">
      <p:toolbarGroup align="left">
         <p:commandButton styleClass="grn_actbttn" value="Cancel" onclick="addProductDialog.hide();" />
      </p:toolbarGroup>
      <p:toolbarGroup align="right">
         <p:commandButton styleClass="grn_actbttn" id="addproduct" value="Add Products" actionListener="#{customerProductsBean.saveCustomerProducts}"  oncomplete="addProductDialog.hide();" />
      </p:toolbarGroup>
   </p:toolbar>

</p:dialog>

Java 代码

/**
 * Method used to save selected Customer Product from Add Product Dialog 
 * @param actionEvent
 */
public void saveCustomerProducts(ActionEvent actionEvent) {

// DB call to save to database

}

是不是 p:dialog 不支持 AJAX 调用?

4

1 回答 1

3

您的对话框在页面上呈现后被移出表单。这是 Primefaces 对话框的客户端小部件工作方式的副作用。

向对话框添加appendToBody="true"属性通常会解决此问题。

如果这不起作用,请确保您的对话框没有被表单包围,而是在对话框放置一个表单元素。

于 2012-04-05T12:42:24.283 回答