常常会需要在Field的某一列显示一个icon,例如文件列表,在文件名前面放一个icon。
很正常的需求,但是SmartGWT的 ListGrid,只能在设置 ListGridField 的时候,设置
其type 为 image 或者 icon。而对于在同一列里面既要显示icon,又要显示文本,似乎
比较困难。
幸好 ListGrid 有个 getCellCSSText 的方法可以覆盖。那么我们就可以在这个方法当中,
设置一下它的css,用 background-image 来达到这样的目标,上代码:
docsList = new ListGrid() {
@Override
protected String getCellCSSText(ListGridRecord record, int rowNum, int colNum) {
if ( "name".equals(getFieldName( colNum))) {
String iconPath = record.getAttribute( "iconPath");
if ( iconPath == null)
return "text-decoration:underline;";
else {
return "padding-left:22px;text-decoration:underline;" +
"background-image:url(\""+iconPath+"\");" +
"background-repeat:no-repeat;";
}
} else
return super.getCellCSSText(record, rowNum, colNum);
}
};