加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex DataGrid的labelFunction用法例子

发布时间:2020-12-15 04:06:57 所属栏目:百科 来源:网络整理
导读:API: mx.controls.dataGridClasses.DataGridColumn.labelFunction(value:Function):void 确定此列中显示文本的函数。默认情况下,列显示与列名称匹配的数据字段的文本。不过,有时您希望显示基于多个数据字段的文本,或显示不具备自己想要格式的文本。在这种

102241314.png

API:

spacer.gif

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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读