如何使用DataGrid中的styleFunction

Flex 中的DataGrid和DataGridColumn上都可以使用styleFunction,如果在DataGrid上使用,那么样式会应用到符合条件的整行,如果是在DataGridColumn上使用,那么样式只会应用到具体的列上,styleFunction的签名是固定的,如下:
		public function myStyleFunc(data:Object,col:AdvancedDataGridColumn):Object
		{
			if (data["Artist"] == artistName)
				return {fontWeight:"bold", backgroundColor:0xFF0000,color:0xCCCCCC};
			return null;
		}

其中的返回值为样式的name/value对,另外有一个非常重要的地方需要特别注意,这些样式其实是给itemRenderer使用的,也就是说只有你的itemRenderer里有这一样式属性,样式才会正确显示出来,DataGrid的默认itemRenderer为mx Text,而Text没有backgroundColor这一样式属性,所以上面的例子里你会发行背景颜色没有生效,虽然DataGridColumn有backgroundColor,但是Text里面根本没有这一项,所以如果你想加更多的样式属性的话,就得自己实现一个自定义的itemRenderer.

另外你可以通过myADG.invalidateList()来刷新DataGrid使其显示出样式,当然默认情况下当初始构造DataGrid或重构时都会自动调用styleFunction。

你可能感兴趣的:(datagrid,Flex,itemRenderer,styleFunction,dataGridColumn)