Richfaces如何避免显示富树图标



richfaces如何避免显示富树图标?我想过滤树,如果一个父亲被过滤,他不会被显示,但他的孩子会,所以我需要从默认图标更改为无图标。

<rich:treeNode type="regularNode"
                icon="#{item.toShow?item.icon:'null'}" rendered="#{item.toShow}">

<rich:tree<rich:treeNode>组件最终在HTML页面变成一堆tabletrtd节点。
通过查看<rich:treeNode>的组件参考文档,您可能会发现<rich:treeNode>组件图标的预定义样式类名是rich-tree-node-icon

是的,这是一个样式类,你应该重写它来改变图标的样式。
然而,在你的情况下,你不需要隐藏所有<rich:treeNode>的图标。所以应该做一些棘手的事情。

您知道您可以通过使用像这样的EL来指定树节点的图标。所以先去做吧

<rich:treeNode icon="#{myNode.nodeIcon}"

其中myNode表示treeNode, getNodeIcon()方法返回图像的路径。对于需要隐藏图标的treeNode,该方法应该返回一个空String。
好,现在把javascript 放在结束 </rich:tree>标签之后。

<script>
    var imgs = document.getElementsByTagName('img');
    for(var i = 0; i &lt; imgs.length; i++) {
        var iconFound = imgs[i].parentNode.getAttribute('class').indexOf('rich-tree-node-icon') >= 0;
        var imgSrc = imgs[i].getAttribute('src');
        if(iconFound &amp;&amp; (imgSrc == '')) {
            imgs[i].style.display = 'none';
        }
    }
</script>

就是这样。
注意:这个脚本做什么?
它查找父类样式类包含rich-tree-node-icon类的<img>。如果src为空,则隐藏这些<img>标签。

相关内容

  • 没有找到相关文章