p:p:列中的cellEditor

时间:2014-01-21 14:31:59

标签: primefaces datatable

我想有这样的东西,一个列,在这个专栏里面我可以有一个基于另一个配置的编辑器,但是当我尝试了这个代码时p:column不会渲染p:cellEditor。

            <p:column headerText="Tipo">
                <ui:fragment rendered="#{_field.isType('String')}">
                    <p:cellEditor>
                        <f:facet name="output"> <h:outputText value="#{_field.sValue}" rendered="#{_field.isType('String')}" /></f:facet>
                        <f:facet name="input"> <p:inputText value="#{_field.sValue}" style="width:100%" rendered="#{_field.isType('String')}" /></f:facet>
                    </p:cellEditor>
                </ui:fragment>

                <ui:fragment rendered="#{_field.isType('Integer')}">
                    <p:cellEditor>
                        <f:facet name="output"> <h:outputText value="#{_field.iValue}" rendered="#{_field.isType('Integer')}" /> </f:facet>
                        <f:facet name="input"> <p:inputText value="#{_field.iValue}" rendered="#{_field.isType('Integer')}" style="width:100%" /></f:facet>
                    </p:cellEditor>
                </ui:fragment>

                <ui:fragment rendered="#{_field.isType('Ativo')}">
                    <p:cellEditor>
                        <f:facet name="output"> <h:outputText value="#{_field.aValue.nome}" rendered="#{_field.isType('Ativo')}" /></f:facet>
                        <f:facet name="input">
                    <p:selectOneMenu value="#{_field.aValue}" style="width:100%" rendered="#{_field.isType('Ativo')}">
                                <f:selectItems value="#{ativoBean.listaAtivos}" var="_asset" itemLabel="#{_asset.nome}" itemValue="#{_asset}" />
                                <f:converter converterId="ativoConverter" />
                            </p:selectOneMenu>
                        </f:facet>
                    </p:cellEditor>
                </ui:fragment>
            </p:column>

1 个答案:

答案 0 :(得分:0)

它有效

<p:column headerText="Tipo">
<p:cellEditor>
    <f:facet name="output">
        <ui:fragment rendered="#{_field.isType('String')}">
            <h:outputText value="#{_field.sValue}" rendered="#{_field.isType('String')}" />
        </ui:fragment>
        <ui:fragment rendered="#{_field.isType('Integer')}">
            <h:outputText value="#{_field.iValue}" rendered="#{_field.isType('Integer')}" />
        </ui:fragment>
        <ui:fragment rendered="#{_field.isType('Ativo')}">
             <h:outputText value="#{_field.aValue.nome}" rendered="#{_field.isType('Ativo')}" />
         </ui:fragment>
    </f:facet>

    <f:facet name="input">
        <ui:fragment rendered="#{_field.isType('String')}">
            <p:inputText value="#{_field.sValue}" style="width:100%" rendered="#{_field.isType('String')}" />
        </ui:fragment>
        <ui:fragment rendered="#{_field.isType('Integer')}">
            <p:inputText value="#{_field.iValue}" rendered="#{_field.isType('Integer')}" style="width:100%" />
        </ui:fragment>
        <ui:fragment rendered="#{_field.isType('Ativo')}">
            <p:selectOneMenu value="#{_field.aValue}" style="width:100%" rendered="#{_field.isType('Ativo')}">
                <f:selectItems value="#{ativoBean.listaAtivos}" var="_asset" itemLabel="#{_asset.nome}" itemValue="#{_asset}" />
                <f:converter converterId="ativoConverter" />
            </p:selectOneMenu>
        </ui:fragment>
    </f:facet>
</p:cellEditor>