簡體   English   中英

如何在PrimeFaces中使p:cellEditor有條件?

[英]How can I make p:cellEditor conditional in PrimeFaces?

這是我的代碼不起作用:

...
<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。 我想要做的是,當用戶單擊編輯記錄時,可編輯字段顯示輸入字段,然后不可編輯字段顯示其值。 使用上面的代碼,當列不可編輯時,在單擊編輯之前和之后不顯示該值。 當字段可編輯時,將顯示該值,當您單擊編輯時,該值將替換為包含該值的輸入字段。 所以我的示例有效,只是當字段不可編輯時,該值完全隱藏。 我希望在不編輯和編輯時顯示不可編輯的值,我只是不希望它們在編輯期間可編輯。

這個,

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM