Компоненты
<rich:tree
и <rich:treeNode>
наконец становятся связкой узлов table
, tr
и td
на странице HTML
.Взглянув на справочный документ * из <rich:treeNode>
, вы можете обнаружить, что предопределенное имя класса стиля для значка <rich:treeNode>
компонента rich-tree-node-icon
.Да, это класс стилей, который вы должны перезаписать, чтобы изменить стиль иконки.Однако в вашем случае вам не нужно скрывать значки всех <rich:treeNode>
s.Так что что-то хитрое должно быть сделано.Это всего лишь один трюк, который вы можете сделать.
Вы знаете, что вы можете указать значок узла дерева, используя EL
, подобный этому.Поэтому сначала сделайте это.
<rich:treeNode icon="#{myNode.nodeIcon}"
, где myNode
представляет treeNode
, а метод getNodeIcon()
возвращает путь к изображению.Для treeNode
, которые вам нужны, чтобы их значки были скрыты, этот метод должен возвращать пустую строку.Хорошо, теперь поместите это javascript
после тега закрытия </rich:tree>
.
<script>
var imgs = document.getElementsByTagName('img');
for(var i = 0; i < imgs.length; i++) {
var iconFound = imgs[i].parentNode.getAttribute('class').indexOf('rich-tree-node-icon') >= 0;
var imgSrc = imgs[i].getAttribute('src');
if(iconFound && (imgSrc == '')) {
imgs[i].style.display = 'none';
}
}
</script>
Вот и все.Примечание: что делает этот скрипт?Он находит <img>
s, где класс стиля их родителя содержит rich-tree-node-icon
class.Затем скройте эти теги <img>
, если src
пусто.