我的代码如下:tree.xhtml:
<rich:tree ...
<f:facet name="iconCollapsed">
<p class="tree_navi2"/>
</f:facet>
<f:facet name="iconExpanded">
<p class="tree_navi3"/>
</f:facet>
</rich:tree>css样式
.tree_navi2{background:url(../images/btn_spring_tree_add.png) no-repeat;width:22px;height:21px; cursor:pointer;}
.tree_navi3{background:url(../images/btn_spring_tree_sub.png) no-repeat;width:22px;height:21px; cursor:pointer;}如果使用默认的展开和闭合节点图标当然是没有问题的。
而且它默认的浏览器解析出来的代码如下:<TD id=frmMyFolderFileList:folderTree:000011:000021::j_id160:handles class="rich-tree-node-handleicon rich-tree-h-ic-line-last">
    <DIV>
        <A id=frmMyFolderFileList:folderTree:000011:000021::j_id160:handle class=rich-tree-node-handle onclick="var c = Tree.Item.findComponent(this); if (!c) return; c.fireCollapsionEvent();;A4J.AJAX.Submit('frmMyFolderFileList',event,{'oncomplete':function(request,event,data){changeImage();},'similarityGroupingId':'frmMyFolderFileList:folderTree:000011:000021::j_id160','parameters':{'frmMyFolderFileList:folderTree:000011:000021::j_id160NodeExpanded':'false','frmMyFolderFileList:folderTree:000011:000021::j_id160AjaxExpanded':true} } ); return false;" href="#">
            <IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: none; BORDER-TOP: 0px; BORDER-RIGHT: 0px" id=frmMyFolderFileList:folderTree:000011:000021::j_id160:handle:img:collapsed class=rich-tree-node-handleicon-collapsed alt="" src="/Web/faces/a4j/g/3_3_3.Finalorg.richfaces.renderkit.html.images.TreePlusImage/DATB/eAH7!!!!1Tv3GRgYACS3BY4_">
            <IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" id=frmMyFolderFileList:folderTree:000011:000021::j_id160:handle:img:expanded class=rich-tree-node-handleicon-expanded alt="" src="/Web/faces/a4j/g/3_3_3.Finalorg.richfaces.renderkit.html.images.TreeMinusImage/DATB/eAH7!!!!1Tv3GRgYACS3BY4_">
</A>
</DIV>
</TD>而我覆盖了默认节点图标之后,解析得到的代码如下:
它的结构是div→a→span→p
<TD id=frmMyFolderFileList:folderTree:000011:000021::j_id164:handles class="rich-tree-node-handleicon rich-tree-h-ic-line-last">
    <DIV>
        <A id=frmMyFolderFileList:folderTree:000011:000021::j_id164:handle class=rich-tree-node-handle onclick="var c = Tree.Item.findComponent(this); if (!c) return; c.fireExpansionEvent();;A4J.AJAX.Submit('frmMyFolderFileList',event,{'oncomplete':function(request,event,data){changeImage();},'similarityGroupingId':'frmMyFolderFileList:folderTree:000011:000021::j_id164','parameters':{'frmMyFolderFileList:folderTree:000011:000021::j_id164NodeExpanded':'true','frmMyFolderFileList:folderTree:000011:000021::j_id164AjaxExpanded':true} } ); return false;" href="#">            <SPAN id=frmMyFolderFileList:folderTree:000011:000021::j_id164:handle:img:collapsed class=rich-tree-node-handleicon-collapsed>
                <P class=tree_navi2>
                    <A id=frmMyFolderFileList:folderTree:000011:000021::j_id164:handle class=rich-tree-node-handle onclick="var c = Tree.Item.findComponent(this); if (!c) return; c.fireExpansionEvent();;A4J.AJAX.Submit('frmMyFolderFileList',event,{'oncomplete':function(request,event,data){changeImage();},'similarityGroupingId':'frmMyFolderFileList:folderTree:000011:000021::j_id164','parameters':{'frmMyFolderFileList:folderTree:000011:000021::j_id164NodeExpanded':'true','frmMyFolderFileList:folderTree:000011:000021::j_id164AjaxExpanded':true} } ); return false;" href="#">
                    </A>
                </P>
            </SPAN>
            <SPAN style="DISPLAY: none" id=frmMyFolderFileList:folderTree:000011:000021::j_id164:handle:img:expanded class=rich-tree-node-handleicon-expanded><IMG src="/Web/images/btn_spring_tree_sub.png">
            </SPAN>
        </A>
    </DIV>
</TD>感觉<P class=tree_navi2>当中的这段代码很奇怪:
    <A id=frmMyFolderFileList:folderTree:000011:000021::j_id164:handle class=rich-tree-node-handle onclick="var c = Tree.Item.findComponent(this); if (!c) return; c.fireExpansionEvent();;A4J.AJAX.Submit('frmMyFolderFileList',event,{'oncomplete':function(request,event,data){changeImage();},'similarityGroupingId':'frmMyFolderFileList:folderTree:000011:000021::j_id164','parameters':{'frmMyFolderFileList:folderTree:000011:000021::j_id164NodeExpanded':'true','frmMyFolderFileList:folderTree:000011:000021::j_id164AjaxExpanded':true} } ); return false;" href="#">
不知道他是怎么出来的。而且只要把<P class=tree_navi2>换成
<h:graphicImage value="/images/btn_spring_tree_add.png" />解析出来的代码就正常了。
<TD id=frmMyFolderFileList:folderTree:000011:000021::j_id164:handles class="rich-tree-node-handleicon rich-tree-h-ic-line-last">
    <DIV>
        <A id=frmMyFolderFileList:folderTree:000011:000021::j_id164:handle class=rich-tree-node-handle onclick="var c = Tree.Item.findComponent(this); if (!c) return; c.fireExpansionEvent();;A4J.AJAX.Submit('frmMyFolderFileList',event,{'oncomplete':function(request,event,data){changeImage();},'similarityGroupingId':'frmMyFolderFileList:folderTree:000011:000021::j_id164','parameters':{'frmMyFolderFileList:folderTree:000011:000021::j_id164NodeExpanded':'true','frmMyFolderFileList:folderTree:000011:000021::j_id164AjaxExpanded':true} } ); return false;" href="#">            <SPAN id=frmMyFolderFileList:folderTree:000011:000021::j_id164:handle:img:collapsed class=rich-tree-node-handleicon-collapsed>
                <IMG src="/Web/images/btn_spring_tree_add.png">
            </SPAN>
            <SPAN style="DISPLAY: none" id=frmMyFolderFileList:folderTree:000011:000021::j_id164:handle:img:expanded class=rich-tree-node-handleicon-expanded>
                <IMG src="/Web/images/btn_spring_tree_sub.png">
            </SPAN>
        </A>
    </DIV>
</TD>我开始以为iconCollapsed和iconExpanded不可以用css样式控制,然后将tree_navi2和tree_navi3替换为了img
但是后面才发现只替换tree_navi2一个就可以了。
这下我就更糊涂了问题究竟出在哪里,哪位高手知道请帮忙解析一下好吗?谢谢