2012-07-04 75 views
0

我正在使用gwt在表格單元內顯示圖像,其動態圖像,因此我不需要對其進行硬編碼,但它不顯示其內部的真實圖像。這裏是我的代碼..GWT TableCellElement未顯示背景圖像

我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個圖像,我不能爲每個圖像定義CSS 100 ..

我真的很感激,如果有人可以排序了這一點爲了我。

+0

安置自己的主階級的UI粘結劑模板。我爲UiField tableCellElement使用了com.google.gwt.dom.client.TableCellElement類。但是我發現'TableCellElement'沒有定義'setBackgroundImage' –

回答

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);