有没有办法改变节点的左边距? Tree2使用以下列来渲染这些边距:
<td height="100%" width="19" style=""><img height="18" border="0" width="19" src="/vwwinner/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/12806587/tree2.HtmlTreeRenderer/images/spacer.gif" alt="spacer"></td>
19 px宽度对我来说太大了,所以我很乐意找到如何改变这个值。
答案 0 :(得分:0)
您始终可以使用css覆盖宽度值。
td { width: 100px; }
应该可以为treeNode指定styleClass。
在任何情况下,都不推荐使用td元素的width属性,而应使用css。
答案 1 :(得分:0)
好吧,由于未知原因,值在t:tree2渲染器类(HtmlTreeRenderer)中被硬编码:
protected void encodeCurrentNode(...) {
.....
out.writeAttribute(HTML.WIDTH_ATTR, "19", null);
out.writeAttribute(HTML.HEIGHT_ATTR, "100%", null);
...
}
所以我只是扩展了那个类,覆盖了 encodeCurrentNode()方法并在faces-config.xml中注册了我的渲染器:
<render-kit>
<render-kit-id>HTML_BASIC</render-kit-id>
<renderer>
<component-family>org.apache.myfaces.HtmlTree2 </component-family>
<renderer-type>
org.apache.myfaces.HtmlTree2
</renderer-type>
<renderer-class>
com.myapp.MyHtmlTreeRenderer
</renderer-class>
</renderer>
</render-kit>