5

動作しない私のコードは次のとおりです。

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

4

1 に答える 1

8

これ、

<p:column>
    <f:facet name="output" rendered="#{!editUIBean.isEditable('customerId')}">
        <h:outputText value="#{invoice.customerId}" />
    </f:facet>
    ...
</p:column>

正しくありません。は<p:column>をサポートしていません<f:facet name="output">rendered条件を自分自身に置くだけ<h:outputText>です。

<p:column>
    <h:outputText value="#{invoice.customerId}" rendered="#{!editUIBean.isEditable('customerId')}" />
    ...
</p:column>
于 2013-05-02T02:01:31.753 に答える