2015-12-23 114 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>