如何迭代Primefaces树中的节点变量,以从DB设置CSS类中的图标

如何迭代Primefaces树中的节点变量,以从DB设置CSS类中的图标,css,primefaces,icons,Css,Primefaces,Icons,我用的是PF v。5.3.5和JSF v。2.2.8 <p:tree value="#{userFiltersBean.objectsTreeModel}" var="node" hideRootNode="true" styleClass="filtersTree"> <p:treeNode icon=""> 我在每个树节点中看到了不需要的相同图标。此图标用于树中的最后一个树节点。 然而,我想通过它们反复说明,每个树节点都有自己的图标

我用的是PF v。5.3.5和JSF v。2.2.8

<p:tree value="#{userFiltersBean.objectsTreeModel}" var="node" hideRootNode="true" styleClass="filtersTree">
                <p:treeNode icon="">
我在每个树节点中看到了不需要的相同图标。此图标用于树中的最后一个树节点。 然而,我想通过它们反复说明,每个树节点都有自己的图标

注意树的大小在每个环境中都不同,并且是动态创建的。 请问我该怎么做

请参阅当前PF版本。 所需的Icefaces版本为

提前感谢。

在Api文档(->文档选项卡)中,它说您可以这样做:

<p: tree value="#{bean.root}" var="doc">
    <p:treeNode type="mp3" icon="ui-icon ui-icon-video">
         <h:outputText value="#{doc.name}" />
    </p:treeNode>
    <p:treeNode type="document" icon="ui-icon ui-icon-image-document">
         <h:outputText value="#{doc.name}" />
    </p:treeNode>
</p:Tree>
你愿意为我做链接吗

<p:treeNode type="mp3" ... />  

如果有帮助,请告诉我

干杯 kyhu:)

在Api文档(->文档选项卡)中,它说您可以这样做:

<p: tree value="#{bean.root}" var="doc">
    <p:treeNode type="mp3" icon="ui-icon ui-icon-video">
         <h:outputText value="#{doc.name}" />
    </p:treeNode>
    <p:treeNode type="document" icon="ui-icon ui-icon-image-document">
         <h:outputText value="#{doc.name}" />
    </p:treeNode>
</p:Tree>
你愿意为我做链接吗

<p:treeNode type="mp3" ... />  

如果有帮助,请告诉我

干杯
kyhu:)

在一个CSS类中为每个元素指定不同的值是不可能的。您必须为每个图标创建一个类,如下所示:

my-treenode-icon-1 {
    background: url("/resources/img/treenode/icon-1.jpg") no-repeat top !important;
}
my-treenode-icon-2 {
    background: url("/resources/img/treenode/icon-2.jpg") no-repeat top !important;
}
然后在迭代中使用图标名而不是路径(如果您在数据库中有一个路径,您可以对其最后一部分进行切片,并只获取图像名,该名称将是类名)


不可能在一个CSS类中为每个元素指定不同的值。您必须为每个图标创建一个类,如下所示:

my-treenode-icon-1 {
    background: url("/resources/img/treenode/icon-1.jpg") no-repeat top !important;
}
my-treenode-icon-2 {
    background: url("/resources/img/treenode/icon-2.jpg") no-repeat top !important;
}
然后在迭代中使用图标名而不是路径(如果您在数据库中有一个路径,您可以对其最后一部分进行切片,并只获取图像名,该名称将是类名)


在没有css的情况下解决

我通过在treeNode中插入一个没有刻面的h:graphicImage来解决这个问题。它现在是我需要的,它是如何在以前的版本中完成的

<p:tree value="#{userFiltersBean.objectsTreeModel}" var="node" hideRootNode="true" styleClass="filtersTree"
                            selectionMode="checkbox">
    <p:treeNode>
        <h:graphicImage value="#{node.leafIcon}" />
        <h:outputText value="#{node.text}" />
    </p:treeNode>
</p:tree>

在没有css的情况下解决

我通过在treeNode中插入一个没有刻面的h:graphicImage来解决这个问题。它现在是我需要的,它是如何在以前的版本中完成的

<p:tree value="#{userFiltersBean.objectsTreeModel}" var="node" hideRootNode="true" styleClass="filtersTree"
                            selectionMode="checkbox">
    <p:treeNode>
        <h:graphicImage value="#{node.leafIcon}" />
        <h:outputText value="#{node.text}" />
    </p:treeNode>
</p:tree>


这是个好主意,但我的树的深度是动态的(每个环境都不同)。因此,我需要动态创建这些CSS类。你知道怎么做吗?这是个好主意,但我的树的深度是动态的(每个环境都不同)。因此,我需要动态创建这些CSS类。请问你知道怎么做吗?