Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何有条件地显示PrimeFaces数据表的列?_Primefaces_Jsf 2_Datatable_Primefaces Datatable - Fatal编程技术网

如何有条件地显示PrimeFaces数据表的列?

如何有条件地显示PrimeFaces数据表的列?,primefaces,jsf-2,datatable,primefaces-datatable,Primefaces,Jsf 2,Datatable,Primefaces Datatable,我有一个父类,包括从这个父类继承的另外两个父类和 我从这个父类中检索一个对象列表,我有一个datatable共享,分为两部分,使用column group来表示从父类产生的每个对象,在datatable中,我想添加一个条件,例如,如果这个对象是X,则在X列中显示它,否则在Y列中显示它 这是我的数据表 <p:dataTable var="etp" value="#{etpBean.etps}"> <f:facet name="header"> Eq

我有一个父类,包括从这个父类继承的另外两个父类和 我从这个父类中检索一个对象列表,我有一个datatable共享,分为两部分,使用column group来表示从父类产生的每个对象,在datatable中,我想添加一个条件,例如,如果这个对象是X,则在X列中显示它,否则在Y列中显示它

这是我的数据表

 <p:dataTable var="etp" value="#{etpBean.etps}">
    <f:facet name="header">
        Equivalent temps de travail
    </f:facet>

    <p:columnGroup type="header">
        <p:row>
            <p:column rowspan="3" headerText="Ressource" />
            <p:column colspan="4" headerText="Centre des coûts" />
        </p:row>
        <p:row>
            <p:column colspan="3" headerText="Activite" />
            <p:column colspan="3" headerText="Projet" />
        </p:row>
        <p:row>
            <p:column headerText="Nom" />
            <p:column headerText="Prise en charge" />
            <p:column headerText="Charge réelle" />
            <p:column headerText="Nom" />
            <p:column headerText="Prise en charge" />
            <p:column headerText="Charge réelle" />
        </p:row>
    </p:columnGroup>



    <p:column>
        <h:outputText value="#{etp.affectation.ressource.nom}" />
    </p:column>

    <!-- Here I display the first object -->

    <p:column>
        <h:outputText value="#{etp.parent.nom}" />
    </p:column>


    <p:column>
        <h:outputText value="#{etp.etp}%" />
    </p:column>

    <p:column>
        <h:outputText value="#{etp.chargeActivite}%" />
    </p:column>



    <!-- Here I display the second object -->

     <p:column>
        <h:outputText value="#{etp.parent.nom}" />
    </p:column>


    <p:column>
        <h:outputText value="#{etp.etp}%" />
    </p:column>

    <p:column>
        <h:outputText value="#{etp.chargeActivite}%" />
    </p:column>



    <p:columnGroup type="footer">
        <p:row>
            <p:column colspan="2" footerText="Totals:" />
            <p:column footerText="" />
            <p:column footerText="$#{etpBean.chargeTotal}%" />
        </p:row>
    </p:columnGroup>


</p:dataTable>

等效产程
目前,数据在列上是重复的,这是正常的,这是正常的,因为我没有设置任何条件

我想在整个对象列表中对该列进行分组,因为它将在所有行上重复相同的操作

<p:column>
    <h:outputText value="#{etp.affectation.ressource.nom}" />
</p:column>


您的问题不清楚。您是否询问是否有类X和类Y的对象列表,并且这两个类都是从父类继承的。你如何识别它的实例是类X还是类Y?@Sumit感谢你的回答我为整个层次结构选择了单个表的策略,我有一个鉴别器,当我在表上的数据库中插入对象X时,parent将X作为鉴别器,甚至是YIf的case,我得到了你想检查primel中的obj instanceof X或obj instanceof Y吗?如果是,您可以使用type属性进行检查。@CHARAFISaad感谢您的进一步解释。不过我还是想改进一下你的问题。另外,添加一些interfunction可能会使它更易于理解。。。请仔细阅读如何创建一个你的问题不清楚。您是否询问是否有类X和类Y的对象列表,并且这两个类都是从父类继承的。你如何识别它的实例是类X还是类Y?@Sumit感谢你的回答我为整个层次结构选择了单个表的策略,我有一个鉴别器,当我在表上的数据库中插入对象X时,parent将X作为鉴别器,甚至是YIf的case,我得到了你想检查primel中的obj instanceof X或obj instanceof Y吗?如果是,您可以使用type属性进行检查。@CHARAFISaad感谢您的进一步解释。不过我还是想改进一下你的问题。另外,添加一些interfunction可能会使它更易于理解。。。请仔细阅读如何创建