Вот мой код, который не работает:
...
<p:column sortBy="#{invoice.customerId}" id="customerId">
<f:facet name="header"><h:outputText value="Customer ID"/></f:facet>
<f:facet name="output" rendered="#{!editUIBean.isEditable('customerId')}">
<h:outputText value="#{invoice.customerId}"/>
</f:facet>
<p:cellEditor rendered="#{editUIBean.isEditable('customerId')}">
<f:facet name="output">
<h:outputText value="#{invoice.customerId}"/>
</f:facet>
<f:facet name="input">
<h:inputText value="#{invoice.customerId}"/>
</f:facet>
</p:cellEditor>
</p:column>
...
Итак, что я пытаюсь сделать: пользователь выбирает параметр, этот параметр определяет, какие записи доступны для редактирования, и отображает только те записи, которые доступны для редактирования для этого параметра. Для любого заданного параметра доступны для редактирования только определенные столбцы в этих записях. Метод isEditable(columnName) возвращает true, если для данной опции столбец доступен для редактирования, или false, если он недоступен для редактирования. Что я хочу сделать, так это то, что когда пользователь нажимает «Изменить» для записи, в редактируемых полях отображаются поля ввода, а затем в нередактируемых полях отображаются их значения. С приведенным выше кодом, когда столбец не редактируется, значение не отображается до и после нажатия кнопки «Изменить». Когда поле доступно для редактирования, отображается значение, а когда вы нажимаете «Изменить», значение заменяется полем ввода, содержащим значение. Итак, мой пример работает, за исключением того, что значение полностью скрыто, когда поле недоступно для редактирования. Я хочу, чтобы нередактируемые значения отображались, когда они не редактируются, и при редактировании, я просто не хочу, чтобы они редактировались во время редактирования.