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 に答える