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