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 に答える