0

テーブルセル内に画像を表示するためにgwtを使用しています。これは動的な画像であるため、ハードコードする必要はありませんが、実際の画像は表示されません。これが私のコードです..

私のUiBinderは次のようなものです:

    <table>
       <tr><td ui:field="tableCellElement"/></tr>
    </table>

私のプレゼンターはメソッド内の要素にアクセスしています:

    void someMethod(Image patterImage) {
        tableCellElement.setBackgroundImage("url('"+patternImage.getUrl()+"')");
        // and I have tried this without using url as well but it doesn't work
        // DOM.setstyleattribute also doesn't work...
    }

コードは正常に実行されますが、画像が表示されません。現在 IE9 を使用していますが、IE8 と 7 でも試しました。

cssで解決できることは知っていますが、ここでは画像が動的であるため、画像が100個ある場合、画像ごとに100個のcssを定義できません..

誰かが私のためにそれを整理できれば、本当に感謝しています。

4

1 に答える 1

0

あなたのコードは基本的に大丈夫です。画像が表示されない理由は、おそらく td のデフォルト サイズが 0 であるためです。

背景画像は要素のサイズに影響しないため、手動で設定する必要があります。すべての画像のサイズが同じ場合は、UiBinder で一度設定できます。

<ui:style>
  .myTableCell {
    width: 32px;
    height: 32px;
  }
</ui:style>

...

<table>
  <tr>
    <td class="{style.myTableCell}" ui:field="tableCellElement"></td>
  </tr>
</table>

それ以外の場合は、プログラムで設定します。

Style style = tableCellElement.getStyle();

style.setBackgroundImage("url('"+patternImage.getUrl()+"')");
style.setWidth(patternImage.getWidth(), Unit.PX);
style.setHeight(patternImage.getHeight(), Unit.PX);
于 2012-07-05T10:13:16.490 に答える