API:
mx.controls.dataGridClasses.DataGridColumn.labelFunction(value:Function):void
- 确定此列中显示文本的函数。默认情况下,列显示与列名称匹配的数据字段的文本。不过,有时您希望显示基于多个数据字段的文本,或显示不具备自己想要格式的文本。在这种情况下,可使用
labelFunction指定一个回调函数。
对于 DataGrid 控件,方法签名具有以下格式:
labelFunction(item:Object, column:DataGridColumn):String
其中,item 包含 DataGrid 项目对象,并且 column 指定 DataGrid 列。
回调函数可能会连接数据中的 firstName 和 lastName 字段,或者对 Date 设置某些自定义格式,也可能将月的数字形式转换为字符串形式。
此属性可用作数据绑定的源代码。
- 语言版本:
- 3.0
- Player 版本:
- Flash 9, AIR 1.1
- 产品版本:
- Flex 3
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="init(event)"
width="100%"
height="100%">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
[Bindable]
private var arr:ArrayCollection=new ArrayCollection();
protected function init(event:FlexEvent):void
{
for(var i:Number=1;i<6;i++){
var obj:Object=new Object();
obj.name="小"+i;
obj.age=20+i;
obj.sex=i%2==1?1:2;
arr.addItem(obj);
}
}
private function dataGridRowNum(item:Object, column:int):String
{
var index:int=this.dg.dataProvider.getItemIndex(item) + 1;
return String(index);
}
private function labelFunction(item:Object,column:DataGridColumn):String
{
var s:String=item[column.dataField];
switch (column.dataField)
{
case "sex":
if(s=="1"){
s="男";
}else if(s=="2"){
s="女";
}else{
s="未知";
}
break;
}
return s;
}
]]>
</mx:Script>
<mx:DataGrid width="100%" height="100%" id="dg" dataProvider="{arr}">
<mx:columns>
<mx:DataGridColumn headerText="行号" labelFunction="dataGridRowNum"/>
<mx:DataGridColumn headerText="姓名" dataField="name"/>
<mx:DataGridColumn headerText="年龄" dataField="age"/>
<mx:DataGridColumn headerText="性别1" dataField="sex"/>
<mx:DataGridColumn headerText="性别2" dataField="sex" labelFunction="labelFunction"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>

















