【发布时间】:2013-08-22 08:03:27
【问题描述】:
我希望只有在满足某些条件时才允许用户编辑数据表中的单元格。
最初我尝试<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 类,并且看起来像是用户可编辑的单元格。
将条件应用于单元格编辑的正确方法是什么?
谢谢!
【问题讨论】:
标签: jsf-2 primefaces datatable