2011-06-09 38 views
1

我有一個表格,其中包含一個數據表中的列表。要將新記錄添加到列表中,請單擊「添加」,然後出現對話框<p:dialog>,其中包含兩列的任何空數據表格要填充兩個輸入文本框。在對話框中,我有「保存」和「取消」按鈕。一旦我們點擊保存按鈕,新的記錄應該保存到數據庫中,並且表格中的列表應該與新記錄一起顯示。該數據表是primeface行內行編輯功能。我正在使用咆哮來顯示錯誤消息。一旦我用空數據更新我的記錄,它會顯示所需的信息。但是當我點擊添加按鈕時,它又顯示了相同的必需信息。它顯示了以前的錯誤。我不想那樣。任何人都可以在這方面幫助我。 「添加」是一個Ajax請求。 primefaces growl redisplays previous message

<h:body> 
<ui:composition template="/WEB-INF/facelets/template/adminLayout.xhtml"> 
    <ui:define name="view"> 
<h:form id="myForm" prependId="false"> 


<div class="header" > 
    <div class="titleColor"> 
     T_COD_Prefil 
    </div> 
</div> 

<div class="divPosition"> 
<p:dataTable var="profile" id="profileTable" value="#{profileView.profileModelList}" rowEditListener="#{profileView.rowEditListener}" onRowEditUpdate="buttonPanel" > 
        <p:column style="width:60px;">     
         <p:rowEditor/> 
         <h:commandButton style="padding-left:5px;" image="/resources/images/delete.jpeg" styleClass="spa" value="delete" immediate="true" actionListener="#{profileView.delete}" > 
          <f:attribute name="delteProfile" value="#{profile}" /> 
         </h:commandButton>       
        </p:column> 

        <p:column>         
         <f:facet name="header"> 
          <h:outputText value="IDprefil" /> 
         </f:facet>       
         <h:outputText value="#{profile.profileId}" /> 

        </p:column> 

        <p:column>     
         <f:facet name="header"> 
          <h:outputText value="description" /> 
         </f:facet>      
         <p:cellEditor>      
          <f:facet name="output"> 
           <h:outputText value="#{profile.profileDescription}" /> 
          </f:facet> 
          <f:facet name="input"> 
           <h:inputText required="true" requiredMessage="#{msg.desProfileEmpty}" maxlength="255" value="#{profile.profileDescription}" /> 
          </f:facet>       
         </p:cellEditor> 
        </p:column>     
       </p:dataTable> 

     </div> 
     <div class="divButPosition"> 

     <h:panelGroup id="buttonPanel"> 

      <p:commandButton id="buttons" value="Add" actionListener="#{profileView.addEmptyProfile}" 
      async="true" update="myForm" rendered="#{!profileView.addNewRow}" oncomplete="profileDialog.show();" /> 

     </h:panelGroup> 

    </div> 

    <p:growl id="growl" showDetail="false" /> 
<p:dialog id="profileDialog" header="Profile Detail" prependId="false" widgetVar="profileDialog" resizable="false" width="500" showEffect="explode" hideEffect="explode" modal="false" closable="false"> 

<h:dataTable var="newProfile" value="#{profileView.newProfile}"> 
    <h:column> 
     <f:facet name="header"> 
      <h:outputText value="IDprefil" /> 
     </f:facet> 
     <h:inputText value="#{newProfile.profileId}" required="true" requiredMessage="not empty" /> 
    </h:column> 
    <h:column> 
     <f:facet name="header"> 
      <h:outputText value="description" /> 
     </f:facet> 
     <h:inputText value="#{newProfile.profileDescription}" required="true" requiredMessage="Desctiption should not be empty" /> 
    </h:column> 
</h:dataTable> 
<p:commandButton value="Save" actionListener="#{profileView.saveProfile}" async="true" update="growl,buttonPanel,profileTable" oncomplete="handleRequest(args ,document.getElementById('profileDialog'))" /> 
<p:commandButton value="Cancel" immediate="true" update="buttonPanel" async="true" actionListener="#{profileView.cancelProfile}" oncomplete="profileDialog.hide();" /> 

</p:dialog> 
</h:form> 

+0

請添加您的頁面的代碼。 – 2011-06-09 19:26:59

+0

嗨馬特漢迪,我把我的xhtml頁面 – 2011-06-10 08:50:24

回答

1

嘗試在代碼上寫你的咆哮,並更新按鈕點擊時。 那麼,在IE8上不起作用。

0

提交按鈕單擊後,所有字段將首先驗證,如果其中一些爲空,則需要彈出消息。所以請在不同的標籤下提交相關數據。基本上不同的提交按鈕形式不同

+0

你能否詳細說明你的答案。 – 2013-08-08 19:51:48