動作しない私のコードは次のとおりです。
...
<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 を返します。私がやりたいことは、ユーザーがレコードの編集をクリックすると、編集可能なフィールドに入力フィールドが表示され、編集不可能なフィールドに値が表示されることです。上記のコードでは、列が編集可能でない場合、編集をクリックする前後に値が表示されません。フィールドが編集可能な場合、値が表示され、[編集] をクリックすると、値が値を含む入力フィールドに置き換えられます。したがって、フィールドが編集できない場合、値が完全に非表示になることを除いて、私の例は機能します。編集していないときと編集しているときは、編集できない値を表示したいのですが、編集中に編集できないようにしたくありません。