2011-06-09 40 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