0

有没有办法改变节点的左边距?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 宽度对我来说太大了,所以我很高兴知道如何更改这个值。

4

2 回答 2

0

您始终可以使用 css 覆盖宽度值。

td { width: 100px; }

应该可以为 treeNode 指定 styleClass。

在任何情况下,不推荐使用 td 元素上的 width 属性,而应使用 css 代替。

于 2010-08-02T08:34:18.187 回答
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>
于 2010-08-03T06:08:30.683 回答