2013-11-23 65 views
1

我有dataTable與行編輯,但我不需要編輯我的單元格之一(user.username)。我怎樣才能在primefaces中做到這一點?這可能嗎?我嘗試刪除p:cellEditor對於一個單元格,但它不適用於我的平板電腦,因爲當我在DataTable中使用此列時,此列爲空。primefaces - 編輯沒有一個單元格的行

謝謝!

我的代碼:

<h:form id="form"> 
     <p:growl id="messages" showDetail="true" /> 
     <p:contextMenu for="dataTable"> 
      <p:menuitem value="Delete" update="dataTable" icon="ui-icon-close" 
       actionListener="#{userMB.deleteUser}" /> 
     </p:contextMenu> 
     <p:dataTable id="dataTable" var="user" styleClass="DataTableUsers" 
      value="#{userMB.userList}" paginator="true" rows="5" 
      rowKey="#{user.user_id}" selection="#{userMB.selectedUser}" 
      selectionMode="single" filteredValue="#{userMB.filteredUsers}" 
      editable="true" 
      paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" 
      rowsPerPageTemplate="5,10,15"> 
      <p:ajax event="rowEdit" immediate="true" listener="#{userMB.onEdit}" 
       update=":form:messages, :form:dataTable" process="@this" /> 
      <p:column sortBy="name" filterBy="name" id="name" headerText="Name"> 
       <p:cellEditor> 
        <f:facet name="output"> 
         <h:outputText value="#{user.name}" /> 
        </f:facet> 
        <f:facet name="input"> 
         <p:inputText value="#{user.name}" required="true" 
          requiredMessage="Please Enter Name" 
          validatorMessage="Name is too short!"> 
          <f:validateLength minimum="2"></f:validateLength> 
         </p:inputText> 
        </f:facet> 
       </p:cellEditor> 
      </p:column> 
      <p:column sortBy="surname" filterBy="surname" headerText="Surname"> 
       <p:cellEditor> 
        <f:facet name="output"> 
         <h:outputText value="#{user.surname}" /> 
        </f:facet> 
        <f:facet name="input"> 
         <p:inputText value="#{user.surname}" required="true" 
          requiredMessage="Please Enter Surname!" 
          validatorMessage="Surname is too short!"> 
          <f:validateLength minimum="2"></f:validateLength> 
         </p:inputText> 
        </f:facet> 
       </p:cellEditor> 
      </p:column> 

      <p:column sortBy="username" filterBy="username" 
       headerText="Index number"> 
       <p:cellEditor> 
        <f:facet name="output"> 
         <h:outputText value="#{user.username}" /> 
        </f:facet> 
        <f:facet name="input"> 
         <h:inputText value="#{user.username}" /> 
        </f:facet> 
       </p:cellEditor> 
      </p:column> 

      <p:column sortBy="userDescription" filterBy="userDescription" 
       headerText="descript"> 
       <p:cellEditor> 
        <f:facet name="output"> 
         <h:outputText value="#{user.userDescription}" /> 
        </f:facet> 
        <f:facet name="input"> 
         <p:inputText value="#{user.userDescription}" required="true" 
          requiredMessage="Please Enter User Description" /> 
        </f:facet> 

       </p:cellEditor> 
      </p:column> 
      <p:column style="width:6%" headerText="Edit"> 
       <p:rowEditor /> 
      </p:column> 
      <f:facet name="footer"> 
       <p:commandButton value="New User" oncomplete="newUserDialog.show()" 
        icon="ui-icon-star" title="Creates new user" /> 

      </f:facet> 
     </p:dataTable> 
    </h:form> 

回答

3

持有的user.username值的組件就變成<h:outputText>

<h:outputText value="#{user.username}" /> 

,你將有值爲只讀。

+0

非常感謝您的幫助! – tommy

+0

不客氣。 –

相關問題