常常会需要在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); } };?