我想让用户只有在满足某些条件时才能编辑数据表中的单元格。PrimeFaces数据表中的条件单元格编辑
起初我试图<choose>
来实现这一目标:
<p:dataTable var="item" value="${bean.items}" editable="true" editMode="cell">
<p:column headerText="column A">
<c:choose>
<c:when test="${item.isEditable}">
<p:cellEditor id="title">
<f:facet name="output">
<h:outputText value="#{item.title}"/>
</f:facet>
<f:facet name="input">
<p:inputText value="#{item.title}"/>
</f:facet>
</p:cellEditor>
</c:when>
<c:otherwise>
<h:outputText value="#{item.title}"/>
</c:otherwise>
</c:choose>
</p:column>
...
,但它不工作。另一种方法是使用rendered
属性:
<p:column headerText="column A">
<p:cellEditor rendered="${item.isEditable}">
<f:facet name="output">
<h:outputText value="#{item.title}"/>
</f:facet>
<f:facet name="input">
<p:inputText value="#{item.title}"/>
</f:facet>
</p:cellEditor>
<h:outputText value="#{item.title}" rendered="#{!item.isEditable}"/>
</p:column>
工作正常 - 用户能够编辑只允许细胞。
但即使单元格不可编辑,它仍然具有ui-cell-editing
类,并且看起来像用户的可编辑单元格。
将条件应用于单元格编辑的正确方法是什么?
谢谢!
谢谢@BalusC我一定会尝试使用自定义渲染并张贴在这里的结果。非常感谢您的全面回答! – Meta
不客气。 – BalusC
非常感谢您为此,我将开展拉取请求以复制此行为。 –