2011-07-03 4 views

답변

0

<rich:tree<rich:treeNode> 구성 요소가 마지막으로 HTML 페이지에 table, trtd 노드의 무리가 되십시오의 TreeNode를 대표

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

.
<rich:treeNode>을 보면 구성 요소의 아이콘에 대한 미리 정의 된 스타일 클래스 이름이 rich-tree-node-icon 인 것을 알 수 있습니다.

예,이 아이콘은 스타일을 변경하기 위해 덮어 써야하는 스타일 클래스입니다.
그러나 귀하의 경우에는 <rich:treeNode> 전체의 아이콘을 숨길 필요가 없습니다. 그래서 뭔가 까다로운 일을해야합니다.
이것은 당신이 할 수있는 하나의 속임수입니다.

이와 같이 EL을 사용하여 트리 노드의 아이콘을 지정할 수 있습니다. 먼저 그렇게하십시오. myNodetreeNodegetNodeIcon() 및 방법을 나타낸다

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

이미지 경로를 반환한다. 아이콘이 숨겨져있는 treeNode의 경우이 메서드는 빈 String을 반환해야합니다.
이제이 코드를 javascript 태그 뒤에 붙이십시오.

<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> 태그를 숨 깁니다.

관련 문제