默认情况下,<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>
感谢。