2017-10-21 14 views
0

私はベンダーの追加と表示のためのコードを書いています。しかし、問題は、私は別の形式でテーブルをエクスポートするdataexporterを追加したことです。私はdataexporterをクリックすると、データテーブルをエクスポートする代わりに、inpuutフィールドを検証します。下記のコードを参照してください。私はdataexporterをクリックすると、データテーブルをエクスポートする代わりに入力フィールドを検証します

<h:panelGrid columns="6"> 
          <p:outputLabel value="Vendor Name: " for="vname"/> 
          <p:inputText id="vname" required="true" value="#{bank.vendor_name}" /> 
          <p:message for="vname"/> 

          <p:outputLabel value="Vendor Bank: " for="bank"/> 
          <p:selectOneMenu id="bank" value="#{bank.bankmode.bankName}" required="true" requiredMessage="Bank required"> 


           <f:selectItem itemLabel="--Select Bank--" itemValue="" noSelectionOption="true"/> 
           <f:selectItems value="#{bank.bankmodel}" 
               var="singlevalue" 
               itemLabel="#{singlevalue.bankName}" 
               itemValue="#{singlevalue.bankName}"/> 
          </p:selectOneMenu> 


          <p:message for="bank"/> 

          <p:outputLabel value="Vendor Account Number: " for="anum"/> 
          <p:inputText id="anum" required="true" value="#{bank.vendor_acct}" requiredMessage="Account Number required" /> 
          <p:message for="anum"/> 

          <p:outputLabel value="Vendor Contact Address: " for="adress"/> 
          <p:inputTextarea id="adress" required="true" value="#{bank.vendor_address}" requiredMessage="Contact Address required" /> 
          <p:message for="adress"/> 

          <p:outputLabel value="Vendor Email Address: " for="email"/> 
          <p:inputText id="email" required="true" label="email" size="40" 
             requiredMessage="Please enter your email address." 
             validatorMessage="Invalid email format" 
             value="#{bank.vendor_email}"> 

           <f:validateRegex 
            pattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" /> 

          </p:inputText> 
          <p:message for="email" /> 

          <p:outputLabel value="Vendor Phone Number " for="pnum"/> 
          <p:inputText id="pnum" required="true" value="#{bank.vendor_phone}" requiredMessage="Phone number required" /> 
          <p:message for="pnum"/> 

          <p:commandButton value="save" process="@this vname,bank,anum,adress,email,pnum" update=":templateForm:growl,singleTB,ven" actionListener="#{bank.insertData}" /> 

         </h:panelGrid> 
    <p:dataTable var="ven_tab" id="singleTB" 
             value="#{bank.vendorList}" 
             rowKey="#{ven_tab.id}" 
             selection="#{bank.selectedList}" selectionMode="single" 
             rows="10"           
             editable="true"           
             paginatorTemplate="{CurrentPageReport} 
             {FirstPageLink} {PreviousPageLink} 
             {PageLinks} {NextPageLink} {LastPageLink} " 
             paginator="true" style="margin-bottom:20px" 
             rowsPerPageTemplate="5,10,15"> 

           <p:ajax event="rowEdit" listener="#{bank.onRowEdit}" update=":templateForm:growl" /> 
           <p:ajax event="rowEditCancel" listener="#{bank.onRowCancel}" update=":templateForm:growl" /> 

           <p:column> 
            <f:facet name="header"> 
             <h:outputText value="Vendor Id"/> 
            </f:facet> 

            <h:outputText value="#{ven_tab.vendorId}"/> 

           </p:column> 

           <p:column> 

            <f:facet name="header"> 
             <h:outputText value="Vendor Name"/> 
            </f:facet> 
            <p:cellEditor> 
             <f:facet name="output"><h:outputText value="#{ven_tab.vendorName}"/></f:facet> 
             <f:facet name="input"><p:inputText value="#{ven_tab.vendorName}" required="true" requiredMessage="Name is required" style="width:96%"/></f:facet> 
            </p:cellEditor> 


           </p:column> 

           <p:column> 

            <f:facet name="header"> 
             <h:outputText value="Vendor Phone Number"/> 
            </f:facet> 
            <p:cellEditor> 
             <f:facet name="output"><h:outputText value="#{ven_tab.vendorPnum}"/></f:facet> 
             <f:facet name="input"><p:inputText value="#{ven_tab.vendorPnum}" required="true" requiredMessage="Phone is required" style="width:96%"/></f:facet> 
            </p:cellEditor> 


           </p:column> 

           <p:column> 

            <f:facet name="header"> 
             <h:outputText value="Vendor Email"/> 
            </f:facet> 

            <p:cellEditor> 
             <f:facet name="output"><h:outputText value="#{ven_tab.vendorEmail}"/></f:facet> 
             <f:facet name="input"><p:inputText required="true" value="#{ven_tab.vendorEmail}" requiredMessage="Email is required" style="width:96%"/></f:facet> 
            </p:cellEditor> 


           </p:column> 
           <p:column> 

            <f:facet name="header"> 
             <h:outputText value="Vendor Contact Address"/> 
            </f:facet> 

            <p:cellEditor> 
             <f:facet name="output"> <h:outputText value="#{ven_tab.vendorContact}"/></f:facet> 
             <f:facet name="input"><p:inputText required="true" value="#{ven_tab.vendorContact}" requiredMessage="Contact is required" style="width:96%"/></f:facet> 
            </p:cellEditor> 


           </p:column> 
           <p:column> 

            <f:facet name="header"> 
             <h:outputText value="Vendor Bank"/> 
            </f:facet> 

            <p:cellEditor> 
             <f:facet name="output"> <h:outputText value="#{ven_tab.vendorBank}"/></f:facet> 
             <f:facet name="input"> 
              <p:selectOneMenu id="bank" style="width:100%" value="#{ven_tab.vendorBank}" required="true" requiredMessage="Bank required"> 

               <f:selectItem itemLabel="--Select Bank--" itemValue="" noSelectionOption="true"/> 
               <f:selectItems value="#{bank.bankmodel}" 
                   var="singlevalue" 
                   itemLabel="#{singlevalue.bankName}" 
                   itemValue="#{singlevalue.bankName}"/> 
              </p:selectOneMenu></f:facet> 
            </p:cellEditor> 
           </p:column> 
           <p:column> 
            <f:facet name="header"> 
             <h:outputText value="Vendor Account Number"/> 
            </f:facet> 
            <p:cellEditor> 
             <f:facet name="output"> <h:outputText value="#{ven_tab.vendorAcct}"/></f:facet> 
             <f:facet name="input"><p:inputText required="true" value="#{ven_tab.vendorAcct}" requiredMessage="Account is required" style="width:96%"/></f:facet> 
            </p:cellEditor> 
           </p:column> 
           <p:column style="width:32px"> 
            <p:rowEditor /> 
           </p:column> 


          </p:dataTable> 

          <h3>Export Page Data Only</h3> 
          <p:contextMenu for="singleTB" rendered="#{bank.status}" > 
           <p:menuitem value="Delete" process="@this singleTB" update=":templateForm:growl,singleTB" icon="ui-icon-close" actionListener="#{bank.deleteCar}"/> 
          </p:contextMenu> 
          <h:commandLink> 
           <p:graphicImage value="/images/excel.png" /> 
           <p:dataExporter type="xls" target="singleTB" fileName="report" pageOnly="true"/> 
          </h:commandLink> 

          <h:commandLink> 
           <p:graphicImage value="/images/pdf.png" /> 
           <p:dataExporter type="pdf" target="singleTB" fileName="report" pageOnly="true" /> 
          </h:commandLink> 

          <h:commandLink> 
           <p:graphicImage value="/images/csv.png" /> 
           <p:dataExporter type="csv" target="singleTB" fileName="report" pageOnly="true" /> 
          </h:commandLink> 

          <h:commandLink> 
           <p:graphicImage value="/images/xml.png" /> 
           <p:dataExporter type="xml" target="singleTB" fileName="report" pageOnly="true" /> 
          </h:commandLink> 

助けてください。私はこれをいつか修正して同じ結果を得ようとしています。ありがとう

答えて

1

JSFには6つのライフサイクルフェーズがあります。それらの1つはProcess Validationフェーズです。このフェーズでは、入力コンポーネント(入力フィールドなど)の検証が行われます。あなたのケースでは、検証が行われることは望ましくありません。 Render Response相はスキップされますまで、これはApply Request Values後、すべてのライフ・サイクル・フェーズを設定して

<h:commandLink immediate="true"> 
    <p:graphicImage value="/images/excel.png" /> 
    <p:dataExporter type="xls" target="singleTB" fileName="report" pageOnly="true"/> 
</h:commandLink> 

:だから、あなたは何をすべきかは、あなたのようcommandLinkコンポーネントにimmediate属性を追加しています。

+0

@ T.Gold:新しい質問の新しい質問 – Kukeltje

関連する問題