[英]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.