2016-02-29 41 views
0

我在tabview中嵌套一個datable。在第一頁,它的所有工作正常,我可以編輯表,但是在切換標籤後,數據表不再可編輯。 有什麼我做錯了嗎?我切換標籤後DataTable不可編輯

使用Primefaces 5.3

<h:form id="form"> 
         <p:tabView id="tabs" value="#{studentsTableView.exams}" activeIndex="#{studentsTableView.activTab}" dynamic="true" var="exam" binding="#{tabView}" cache="false" > 
         <p:ajax event="tabChange" update="form:tabs" /> 
         <p:tab id="tab" title="#{exam.name}"> 
          <p:dataTable id="students" rowIndexVar="rowIndex" var="student" editable="true" widgetVar="gradetable" editMode="cell" tableStyle="width:auto" styleClass="myTable" value="#{studentsTableView.students}">      
           <p:ajax event="cellEdit" update="students" /> 
           <p:column headerText="Nr"> 
            <h:outputText value="#{rowIndex+1}" /> 
           </p:column> 
           <p:column headerText="Vorname"> 
            <h:outputText value="#{student.vorname}" /> 
           </p:column> 
           <p:column headerText="Nachname"> 
            <h:outputText value="#{student.nachname}" /> 
           </p:column> 
           <p:column headerText="Matrikelnummer"> 
            <h:outputText value="#{student.matrikelnummer}" /> 
           </p:column> 
           <p:columns value="#{exam.allExams}" var="subexam" columnIndexVar="colIndex"> 
            <f:facet name="header"> 
             <h:outputText value="#{subexam.examName}" /> 
            </f:facet> 
            <p:cellEditor> 
             <f:facet name="output"><h:outputText id="modeloutput" value="#{studentsTableView.getGrade(subexam, student)}" /></f:facet> 
             <f:facet name="input"><p:inputText id="modelInput" value="#{studentsTableView.currentGrade}" valueChangeListener="#{studentsTableView.insertGrade(subexam, student)}" style="width:90%"> 
               <p:ajax event="change" update="modelInput" /> 
               <p:ajax event="change" update="modeloutput" /> 
               <p:ajax event="change" update="modeloutput" /> 
                <p:ajax event="change" update=":form:tabs:0:students" /> 
              </p:inputText></f:facet> 
            </p:cellEditor> 
           </p:columns> 
           <p:column id="endgrades" headerText="Endnote"> 
            <h:outputText id="endgrade" value="#{studentsTableView.getEndGrade(exam, student)}" /> 
           </p:column> 
           <p:column headerText="Formel"> 
            <p:selectBooleanButton id="value1" value="true" onLabel="Yes" offLabel="No" style="width:60px" /> 
           </p:column> 
           <p:column headerText="Kommentar"> 
            <p:commandButton id="public" icon="ui-icon-comment" type="button" > 
             <p:ajax event="click" listener="#{studentsTableView.setPublicCommentInfos(exam, student)}" update="publicarea" /> 
             </p:commandButton> 
            <p:overlayPanel id="imagePanel" for="public" hideEffect="fade"> 
             <h:inputTextarea id="publicarea" value="#{studentsTableView.publicComment}" > 
              <p:ajax event="change" update="publicarea" /> 
             </h:inputTextarea> 
            </p:overlayPanel> 
            <p:commandButton id="private" icon="ui-icon-locked" type="button" > 
            <p:ajax event="click" listener="#{studentsTableView.setPrivateCommentInfos(exam, student)}" update="privatearea" /> 
            </p:commandButton> 
            <p:overlayPanel id="privatepanel" for="private" hideEffect="fade"> 
              <h:inputTextarea id="privatearea" value="#{studentsTableView.privateComment}" > 
              <p:ajax event="change" update="privatearea" /> 
             </h:inputTextarea> 
            </p:overlayPanel> 
           </p:column> 
          </p:dataTable> 
         </p:tab> 
         </p:tabView> 
        </h:form> 
+0

你的代碼在哪裏? – surajsn

回答

0

你的問題可能是因爲你仍然從第一個選項卡中引用的數據表ID,即使你切換到另一個。您可以嘗試爲每個選項卡中的每個數據表創建一個不同的ID,然後使用這些ID並更新它們。

相關問題