我想只有在满足某些条件时才允许用户编辑数据表中的单元格.
最初我试图<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>
...
Run Code Online (Sandbox Code Playgroud)
但它不起作用.另一种方法是使用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>
Run Code Online (Sandbox Code Playgroud)
工作正常 - 用户只能编辑允许的单元格.
但即使单元格不可编辑,它仍然具有ui-cell-editing类,并且看起来像用户的可编辑单元格.
将条件应用于单元格编辑的正确方法是什么?
谢谢!
在C++中,无论如何让用户选择应用程序的图标?例如,Winamp允许您从其首选项中的图标列表中选择要使用的图标.怎么做?