primefaces dataTable单元格仅在contextMenu操作上编辑(不是单击)

时间:2017-06-19 09:09:18

标签: jsf primefaces datatable jsf-2.2

默认情况下,<p:dataTable editable="true" editMode="cell">会在(左)单击时激活单元格编辑器。我想停用此行为,因此只能在上下文菜单操作(已经有效)上编辑单元格。

这可以通过合理的努力来完成吗?

<p:dataTable id="table_excel" var="row" value="${detail.excelData}" editable="true" editMode="cell"
             draggableRows="true" widgetVar="excel">
  <f:facet name="header">Excel Export</f:facet>
  <p:ajax event="rowReorder" listener="${detail.onExcReorder}" update="msg_ajax" />
  <p:ajax event="cellEdit" listener="${detail.onExcCell}" update="msg_ajax" />
  [...]
  <p:column headerText="Time" style="width: 90px; background-color: ${row.excTimeRGB}">
    <p:cellEditor>
      <f:facet name="output">
        <h:outputText value="${row.excTime}" rendered="${!row.excTimeHide}" />
      </f:facet>
      <f:facet name="input">
        <p:inputText value="#{row.excTimeRaw}" style="width:60px" />
        <p:selectBooleanCheckbox value="#{row.excTimeHide}" />
       </f:facet>
    </p:cellEditor>
  </p:column>
  [...]
</p:dataTable>

<p:contextMenu for="table_excel">
  <p:menuitem value="Edit" icon="fa fa-pencil" onclick="PF('excel').showCellEditor();return false;" />
  <p:menuitem value="Duplicate" icon="fa fa-files-o" actionListener="#{detail.cloneExcelAction}" />
  <p:menuitem value="Delete" icon="fa fa-trash" actionListener="#{detail.removeExcelAction}">
    <p:confirm header="Delete?" message="Delete?" icon="fa fa-warning" />
  </p:menuitem>
</p:contextMenu>

感谢。

0 个答案:

没有答案