2015-12-23 41 views
0

我已經爲inputtext,autocomplete等組件實現了primefaces roweditor。我正在嘗試爲selectmanymenu實現,但無法獲得結果。如果我使用單元格編輯器,那麼我需要使用輸入和輸出值應參照相同。這裏selectmanymenu的值將不是單個變量的列表。所以我不知道如何處理它。primefaces datatable rowEditor不能用於p:selectManyMenu

我想知道p:selectManyMenu與p:cellEditor的正確實現。我不確定我們是否也有選擇這樣做。

我已經在stackoverflow以及谷歌搜索,沒有得到任何答案。

請幫我一把。

下面是代碼的細節

<p:dataTable 
    value="#{projectViewBean.projectListToEdit}" 
    editable="true" var="proj" id="editProjLst"> 
    <p:ajax event="rowEdit" listener="#{projectEntryBean.onEdit}"/> 
    <p:ajax event="rowEditInit" listener="#{projectEntryBean.onRowEditInit}"></p:ajax> 
<p:column headerText="Project Status" id="sts"> 
     <p:cellEditor> 
      <f:facet name="output"> 
       <p:outputLabel value="#{proj.projectStatus}"></p:outputLabel> 
      </f:facet> 
      <f:facet name="input"> 
       <p:selectOneMenu 
        value="#{proj.projectStatus}" 
        id="pjstval"> 
        <f:selectItems value="#{projectEntryBean.projectStatusList}" 
         id="pjstlst" /> 
       </p:selectOneMenu> 
      </f:facet> 
     </p:cellEditor> 
</p:column> 
<p:column headerText="Phase" id="dbphase"> 
     <p:cellEditor> 
      <f:facet name="output"> 
       <p:outputLabel value="#{proj.projectPhaseValue}"></p:outputLabel> 
      </f:facet> 
      <f:facet name="input"> 
       <p:autoComplete 
        completeMethod="#{projectEntryBean.autoSearchProjectPhase}" 
        value="#{proj.projectPhaseValue}" 
        dropdown="true" scrollHeight="200" emptyMessage="No Phase Found" 
        minQueryLength="1" forceSelection="true"></p:autoComplete> 
      </f:facet> 
     </p:cellEditor> 
    </p:column> 
<p:column headerText="Project Manager" id="pjtmgr"> 
     <p:cellEditor id="pm"> 
      <f:facet name="output"> 
       <p:outputLabel value="#{projectEntryBean.pjtView.projectUserList}"></p:outputLabel> 
      </f:facet> 
      <f:facet name="input"> 
       <p:selectManyMenu 
        value="#{proj.projectManager}" 
        id="projectmanagerval"> 
        <f:selectItems value="#{projectEntryBean.pjtView.projectUserList}" 
         id="pmlst" /> 
       </p:selectManyMenu> 
      </f:facet> 
     </p:cellEditor> 
    </p:column> 
<p:column style="width:32px"> 
     <p:rowEditor /> 
    </p:column> 
</p:dataTable> 
+0

請解釋***,但無法得到的結果***在口頭上或通過截圖 –

+0

@MahendranAyyarsamyKandiar,一旦我選擇從selectOneMenu用於2倍的值,它會被後來,當保存在數據庫我想用行編輯器以datatable的格式檢索相同的值,selectmanymenu組件必須顯示存儲的值,但這裏沒有顯示,因爲facet輸出是標籤並且facet輸入是列表 –

+2

@rao,Thanks for ur鏈接。我經常用它來引用它。但在那裏我只看到selectonemenu,但沒有選擇selectmanymenu –

回答

1

最後我能夠通過轉換器來實現它。這可能對某人有所幫助。請參閱解決方案

<p:column headerText="Project Manager" id="pjtmgr"> 
    <p:cellEditor id="pm"> 
     <f:facet name="output"> 
      <p:outputLabel value="#{proj.projectManager}"> 
      <f:converter converterId="vendorConverter"></f:converter> 
      </p:outputLabel> 
     </f:facet> 
     <f:facet name="input"> 
      <p:selectManyMenu 
       value="#{proj.projectManager}" 
       id="projectmanagerval"> 
       <f:selectItems value="#{projectEntryBean.pjtView.projectUserList}" 
        id="pmlst" /> 
      </p:selectManyMenu> 
     </f:facet> 
    </p:cellEditor> 
</p:column>