2013-07-04 40 views
1

我使用o:ignoreValidationFailed,但它在ui:repeat內不起作用。當我在外面做同樣的事情時,它會起作用!我嘗試了mojarra和MyFaces ...我正在使用primefaces。如果有另一種方式來跳過驗證只有一個按鈕...ignoreValidationFailed在UI中不起作用:重複

<o:form id="rateplanEditByPeriod" prependId="false"> 
<p><p:messages id="mensagensDlg"/></p> 

    <p:tabView id="tabs"> 
    <p:tab title="Cancelamento" id="tabCanc"> 
    <h:panelGrid id="cancelationsTable" columns="2" cellpadding="10px" columnClasses="alignTop,alignTop"> 

    <ui:repeat id="repeat" var="rest" value="#{rateplanByPeriodManaged.rateplanByPeriod.restriction.restTypeCancelation.restTypeCanConfs}" > 

             <h:panelGrid columns="8"> 

               <p:inputText id="penaltyValue_#{loop.index}" value="#{rest.penalityValue}" style="width:28px" label="Valor" title="Valor" disabled="#{rest.noCancel}" required="true"/> 


               <p:commandLink id="add_#{loop.index}" actionListener="#{rateplanByPeriodManaged.addCancConf}" update=":rateplanEditByPeriod:tabs:cancelationsTable" partialSubmit="true" process=":rateplanEditByPeriod:tabs:cancelationsTable" value="+"> 
               <o:ignoreValidationFailed /> 
               </p:commandLink> 
               <p:commandLink actionListener="#{rateplanByPeriodManaged.removeCancConf(rest)}" value="-" update=":rateplanEditByPeriod:tabs:cancelationsTable" partialSubmit="true" process=":rateplanEditByPeriod:tabs:cancelationsTable"> 

                <o:ignoreValidationFailed /> 
               </p:commandLink> 



             </h:panelGrid> 

            </ui:repeat> 


           </h:panelGrid> 

          </p:tab> 

         </p:tabView> 

         <p:commandLink styleClass="button" onclick="dlgEdit.hide()" immediate="true" update=":msgsPanel">#{msgs['inventory.editByPeriod.cancel']}</p:commandLink> 
         <p:commandLink styleClass="button" actionListener="#{rateplanByPeriodManaged.editByPeriod(loginManaged.hotelSelected)}" oncomplete="if (!args.validationFailed) {dlgEdit.hide(); updateAllSearches(); updateAllNotifications();}" update="mensagensDlg, tabs" >#{msgs['inventory.editByPeriod.confirm']}</p:commandLink> 


     </o:form> 

回答

2

我也面臨着同樣的問題,但有p:數據表 我

1-解決它添加一個條件爲必填字段知道作爲@Camilla說,AJAX來自提交按鈕或不 。

required="#{!empty param['trans_desc_form:savetransid']}"/> 

trans_desc_form是整個窗體ID和savetransid被提交按鈕保存ID

2 - 我刪除@NotNull從強制

@JoinColumn(name = "ITEMNO", referencedColumnName = "ITEMNO") 
@ManyToOne(optional = false, fetch = FetchType.LAZY) 
//@NotNull 
private Item item; 

我創建了一個驗證我的JPA實體關於這個問題的問題 ignoreValidationFailed doesn´t work inside p:dataTable

1

我不知道,如果it's最好的形式給出,但它的工作對我來說...

<h: inputText id="text1" value="" required="#{!empty param['formName:btnSave']}" /> 
1

這不是獲得「取消」按鈕的正確方法。

只要把process="@this"<p:commandLink>,或者如果你不需要做任何業務邏輯,使其成爲一個正常<h:link>從而重新加載頁面(從而隱含再現請求/視圖作用域bean)。

至於<o:ignoreValidationFailed><ui:repeat>本身的故障,請創建一個issue