SmartGWT 之 显示带Icon的Field

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

你可能感兴趣的:(css)