2016-04-25 4 views
-2

Ich weiß, es wurde mehrmals gefragt, aber ich habe die Lösung nicht gefunden. Ich versuche, p:calendar zu verwenden, aber es taucht nicht auf, nur das Textfeld wird angezeigt. Andere Komponenten funktionieren gut. Ich benutze PrimeFaces 5.3 und mojarra 2.2. Auch benutze ich jsf Templating. Ich habe versucht, zu Hauptvorlage Datei sowie das <h:head> Tag in dieser Ansicht hinzuzufügen. Der Kalender wird in der Dialogkomponente angezeigt. Hier ist mein Code:p: Kalender nicht auftauchen

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://xmlns.jcp.org/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:p="http://primefaces.org/ui"> 
    <h:head> 
     <f:metadata> 
      <f:viewAction actionListener="#{providerController.onLoad()}" /> 
     </f:metadata> 
    </h:head> 

    <h:body> 
     <ui:composition template="/Views/Template/MainTemplate.xhtml"> 
      <ui:define name="pageTitle"> 
      Welcome [Dashboard.xhtml] 
      </ui:define> 

      <ui:define name="mainContent"> 
      <h:outputScript library="primefaces" name="jquery/jquery.js"/> 

       <h2>Provider Details</h2> 
<p:calendar id="cal" showOn="button" /> 
       <h:form rendered="#{providerController.canCreateProvider()}"> 
        <p:commandButton value="Create" update=":myForm" 
         action="#{providerController.createProviderClicked()}" 
         oncomplete="PF('Dlg1').show();" /> 
        <br /> 
       </h:form> 

       <h:form id="mainForm"> 
        <p:dataTable value="#{providerController.providerList}" 
         var="provider"> 

<!-- <p:inputText value="#{providerController.providerSearchText}"> 
         <f:ajax event="change" listener="#{providerController.providerSearchTextChanged()}"></f:ajax> 
         </p:inputText> --> 
         <p:column headerText="Provider Name" filterMatchMode="contains" filterBy="#{provider.getFullName()}"> 

          #{provider.getFullName()} 
         </p:column> 

         <p:column headerText="Npi Number"> 
          #{provider.npiNum} 
         </p:column> 

         <p:column headerText="Entity"> 
          #{provider.centity.name} 
         </p:column> 

         <p:column headerText="Practices"> 
          <table> 
           <ui:repeat value="#{provider.practiceList.toArray()}" var="t"> 
            <tr> 
             <td style="border: 0px;"><h:outputText value="#{t.name}" /> 
             </td> 
            </tr> 
           </ui:repeat> 
          </table> 

          <!--      <p:selectOneMenu id="advanced" 
           panelStyle="width:180px" 
           effect="fade" var="t" style="width:160px"> 
           <f:selectItems value="#{provider.practiceList.toArray()}" var="practise" 
            itemLabel="#{practise.name}" itemValue="#{practise}" /> 

           <p:column> 
            <h:outputText value="#{t.name}" /> 
           </p:column> 

          </p:selectOneMenu> --> 
         </p:column> 

         <p:column headerText="Edit" width="80" 
          rendered="#{providerController.canEditProvider()}"> 
          <p:commandButton icon="ui-icon-pencil" update=":myForm" 
           oncomplete="PF('Dlg1').show();" 
           action="#{providerController.updateClicked(provider)}" /> 

          <p:commandButton icon="ui-icon-close" update=":mainForm" 
           resetValues="true" 
           action="#{providerController.removeClicked(provider)}" 
           rendered="#{providerController.shouldShowDelete()}"> 

           <p:confirm header="Confirmation" message="Are you sure?" 
            icon="ui-icon-alert" /> 
          </p:commandButton> 

          <p:confirmDialog global="true" showEffect="fade" 
           hideEffect="fade"> 
           <p:commandButton value="Yes" type="button" 
            styleClass="ui-confirmdialog-yes" icon="ui-icon-check" /> 
           <p:commandButton value="No" type="button" 
            styleClass="ui-confirmdialog-no" icon="ui-icon-close" /> 
          </p:confirmDialog> 

         </p:column> 
        </p:dataTable> 
       </h:form> 

       <!-- ADD/EDIT DIALOG --> 

       <p:dialog id="providerDialog" header="Provider" modal="true" 
        position="top" widgetVar="Dlg1" minHeight="40"> 

        <h:form id="myForm"> 
         <p:messages id="msgs" /> 

         <h:panelGrid columns="2" cellpadding="8"> 
          <p:outputLabel id="entity" 
           value="#{providerController.getFirstEntityName()}" 
           rendered="#{providerController.isSingleItemInEntityList()}" /> 

          <p:selectOneMenu id="entities" 
           value="#{providerController.currentEntity}" 
           panelStyle="width:180px" effect="fade" required="true" 
           style="width:177px" 
           rendered="#{!providerController.isSingleItemInEntityList()}" 
           disabled="#{providerController.getIsEntityListDisabled()}"> 

           <p:ajax listener="#{providerController.onEntityChange}" 
            update="myPractices" /> 

           <f:selectItem itemLabel="Select Entity" /> 
           <f:selectItems value="#{providerController.entityList}" 
            var="entity" itemLabel="#{entity.name}" 
            itemValue="#{entity.getId()}" /> 

           <!-- <p:column> 
            <h:outputText value="#{t.name}" /> 
           </p:column> --> 
          </p:selectOneMenu> 

          <p:selectCheckboxMenu id="myPractices" 
           value="#{providerController.selectedPractices}" 
           label="Select Practices" filter="true" 
           filterMatchMode="startsWith" style="width:177px" var="t" 
           panelStyle="width:250px"> 

           <f:selectItems value="#{providerController.practiceList}" 
            var="practice" itemLabel="#{practice.name}" 
            itemValue="#{practice.getId()}" /> 

           <!-- <p:column> 
            <h:outputText value="#{t.name}" /> 
           </p:column> --> 

          </p:selectCheckboxMenu> 

          <!-- <p:selectCheckboxMenu value="#{providerController.selectedPayers}" label="Select Payers" 
          filter="false" filterMatchMode="startsWith" style="width:177px" var="t" required="true" 
          converter="payerConverter" panelStyle="width:250px"> 

          <f:selectItems value="#{providerController.payerList}" var="payer" 
           itemLabel="#{payer.name} #{payer.planName}" itemValue="#{payer}" /> 

          <p:column> 
           <h:outputText value="#{t.name}" /> 
          </p:column> 

         </p:selectCheckboxMenu> --> 

          <p:inputText id="NpiNumber" 
           value="#{providerController.provider.npiNum}" 
           placeholder="Npi Number" maxlength="10" label="NPI" 
           required="true" 
           validatorMessage="NPI should only digits and length 10"> 
           <!-- validator="npiValidator" --> 
           <f:validateRegex for="NpiNumber" pattern="[0-9]{10}" /> 
           <!-- <f:convertNumber integerOnly="true"/> --> 

          </p:inputText> 
          <p:inputText value="#{providerController.provider.firstName}" 
           placeholder="First Name" label="FirstName" required="true" /> 
          <p:inputText value="#{providerController.provider.lastName}" 
           placeholder="Last Name" label="Last Name" required="true" /> 

         </h:panelGrid> 

         <br /> 
         <h:dataTable id="filesTable" 
          value="#{providerController.documentCells}" var="docCell"> 

          <p:column> 
          <p:calendar id="cal" value="#{docCell.document.effectiveDate}" showOn="button" /> 
           <p:row style="border: 3px solid blue;"> 
            <b><h:outputLabel for="fileUpload" 
              value="#{docCell.lbName}" styleClass="#{docCell.getColorClassName()}" /></b> 
            <br /> 

            <h:outputLabel value="Existing File: " for="idFileName" styleClass="#{docCell.getColorClassName()}" /> 
            <h:outputLabel id="idFileName" 
             value="#{docCell.document.orignalName}" styleClass="#{docCell.getColorClassName()}" /> 
            <br /> 
            <p:fileUpload value="#{docCell.document.orignalName}" 
             fileUploadListener="#{providerController.handleFileUpload}" 
             mode="advanced" dragDropSupport="false" fileLimit="3" 
             sizeLimit="5242880" allowTypes="/(\.|\/)(pdf|doc?x|png|txt)$/" 
             update=":myForm" label="Browse..." 
             > 

             <f:attribute name="name" value="#{docCell}" /> 

            </p:fileUpload> 
           </p:row> 
          </p:column> 

          <p:column headerText="Remove"> 

           <p:commandButton icon="ui-icon-trash" 
            action="#{providerController.deleteFileClicked(docCell)}" 
            update=":myForm"> 

            <p:confirm header="Confirmation" message="Are you sure?" 
             icon="ui-icon-alert" /> 
           </p:commandButton> 

           <p:confirmDialog global="true" showEffect="fade" 
            hideEffect="fade"> 
            <p:commandButton value="Yes" type="button" 
             styleClass="ui-confirmdialog-yes" icon="ui-icon-check" /> 
            <p:commandButton value="No" type="button" 
             styleClass="ui-confirmdialog-no" icon="ui-icon-close" /> 
           </p:confirmDialog> 

          </p:column> 


         </h:dataTable> 

         <p:commandButton id="btnSave" value="Save" validateClient="true" 
          actionListener="#{providerController.saveInfo}" 
          update="msgs, :mainForm" /> 




         <p:blockUI trigger="myForm:btnSave" block="providerDialog"> 
      LOADING<br /> 
          <p:graphicImage value="/Images/loading.gif" width="75" 
           height="75" /> 
         </p:blockUI> 
        </h:form> 


       </p:dialog> 


       <style> 
#providerDialog { 
    position: absolute !important; 
} 

.red{color:red} 
.green{color:green} 
</style> 
      </ui:define> 
     </ui:composition> 
    </h:body> 
</html> 
+1

Zu viel Code, versuchen Sie, das Problem einzuschränken. [mcve] – Geinmachi

+0

Wenn Sie eine Technologie verwenden, stellen Sie bitte sicher, dass Sie die Namen richtig schreiben (PrimeFaces, Mojarra). Wenn Sie in Suchmaschinen dieselben Fehler machen, erhalten Sie möglicherweise keine guten Treffer. Und lies bitte http://stackoverflow.com/tags/jsf/info zu – Kukeltje

+0

Afaik solltest du jquery nicht manuell einschließen, es wird zu h injiziert: Kopf –

Antwort

0

Versuchen Sie Ihre p:calendar Komponente in h:form setzen. Es ist außerhalb von ihnen.

+0

oder es ist in einer verschachtelten Form! – Kukeltje