Chcę zezwolić użytkownikowi na edycję komórek w tabeli danych tylko wtedy, gdy spełniony jest jakiś warunek.Warunkowa edycja komórki w elementach PrimeFaces datatable
Początkowo próbowałem <choose>
do osiągnięcia tego celu:
<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>
...
ale to nie działa. Innym sposobem jest użycie rendered
atrybut:
<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>
że działa prawidłowo - użytkownik jest w stanie zmieniać tylko dozwolony komórek.
Nawet jeśli komórka nie jest edytowalna, nadal ma klasę ui-cell-editing
i wygląda jak komórka edytowalna dla użytkownika.
Jaki jest poprawny sposób zastosowania warunku do edycji komórki?
Dziękujemy!
dziękuję @BalusC I na pewno spróbuje użyć niestandardowego renderujący i opublikować wyniki tutaj. Dziękuję bardzo za wyczerpującą odpowiedź! – Meta
Nie ma za co. – BalusC
Dziękuję bardzo za to, mam zamiar pracować na żądanie pull replikacji tego zachowania. –