`
it_liuyong
  • 浏览: 100587 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

flex中的labelFunction(combox和dataGrid)

    博客分类:
  • flex
 
阅读更多
flex中的labelFunction(combox和dataGrid) FlexXMLHTML.【转载】 
  Flex中,对于显示一个字段,只需要指定对应字段属性给labelField即可,当需要上述所需要的功能的时候就得做个转换了,在Flex的基于List的组件都有一个labelFunction方法能很简单指定所需要显示的内容。
     如有这么一个例子,有一个对象他包含一个name和age,现在需要一个ComboBox显示为:“name,age”,下面看例子代码:

Java代码 
1.<?xml version="1.0" encoding="utf-8"?>      
2.<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"     
3.     creationComplete="init()" backgroundColor="white">      
4.    <mx:Script>      
5.        <![CDATA[      
6.                  
7.            [Bindable]      
8.            private var cbxDataProvider:Array;      
9.                  
10.            private function init():void     
11.            {      
12.                cbxDataProvider = [      
13.                            {name:"kissjava", age:"100"},      
14.                            {name:"rocky", age:"88"},      
15.                            {name:"jiang", age:"99"}      
16.                ];      
17.            }      
18.                  
19.            private function cbxDisplayFunction(data:Object):String      
20.            {      
21.                var label:String = "";      
22.                if(data.hasOwnProperty("name")){      
23.                    label += data.name + ",";      
24.                }      
25.                if(data.hasOwnProperty("age")){      
26.                    label += data.age;      
27.                }      
28.                      
29.                return label;      
30.            }      
31.        ]]>      
32.    </mx:Script>      
33.    <mx:Text id="text" x="30" y="30" text="这是labelFunction的测试例子"/>      
34.    <mx:ComboBox id="cbx" labelFunction="cbxDisplayFunction"       
35.       dataProvider="{cbxDataProvider}"    x="30" y="60"/>      
36.</mx:Application>     
<?xml version="1.0" encoding="utf-8"?>   
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  
     creationComplete="init()" backgroundColor="white">   
    <mx:Script>   
        <![CDATA[   
               
            [Bindable]   
            private var cbxDataProvider:Array;   
               
            private function init():void  
            {   
                cbxDataProvider = [   
                            {name:"kissjava", age:"100"},   
                            {name:"rocky", age:"88"},   
                            {name:"jiang", age:"99"}   
                ];   
            }   
               
            private function cbxDisplayFunction(data:Object):String   
            {   
                var label:String = "";   
                if(data.hasOwnProperty("name")){   
                    label += data.name + ",";   
                }   
                if(data.hasOwnProperty("age")){   
                    label += data.age;   
                }   
                   
                return label;   
            }   
        ]]>   
    </mx:Script>   
    <mx:Text id="text" x="30" y="30" text="这是labelFunction的测试例子"/>   
    <mx:ComboBox id="cbx" labelFunction="cbxDisplayFunction"    
       dataProvider="{cbxDataProvider}"    x="30" y="60"/>   
</mx:Application>   




在dataGrid中,稍有不一样,参数(item:Object, column:DataGridColumn)是必须的,如果有多列,item.xxx代表那一列,dataField的属性也是需要的。返回值是String。


Java代码 
1.<?xml version="1.0" encoding="utf-8"?>  
2.<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">  
3.  <mx:Script>  
4.    <![CDATA[  
5.      [Bindable]  
6.      public var myDataProvider:Array = [  125000000.99,  
7.                1700000000.01,   
8.                984561321483.56,  
9.                0.99,  
10.                5.75,  
11.                31400000000.01];  
12.        
13.      public function myLabelFunction(item:Object, column:DataGridColumn):String  
14.      {  
15.        var amount:String = item.toString(); //若有多列,这里需要item.xxx  
16.        var dollars:String = amount.split(".")[0];  
17.        var dollarDigitCount:Number = dollars.toString().length;  
18.          
19.        var value:String;  
20.          
21.        if (dollarDigitCount >= 7 && dollarDigitCount <= 9)  
22.        {  
23.          value = dollars.slice(0, -6) + " Million";  
24.        }  
25.        else if (dollarDigitCount >= 10 && dollarDigitCount <= 12)  
26.        {          
27.          value = dollars.slice(0, -9) + " Billion";  
28.        }  
29.        else if (dollarDigitCount >= 13)  
30.        {  
31.          value = dollars.slice(0, -12) + " Trillion";  
32.        }  
33.        else 
34.        {  
35.          value = item.toString();  
36.        }  
37.          
38.        return "$" + value;  
39.      }  
40.    ]]>  
41.  </mx:Script>  
42.   
43.  <mx:DataGrid id="dg" dataProvider="{myDataProvider}" >  
44.    <mx:columns>  
45.      <mx:DataGridColumn headerText="Click To Sort" labelFunction="myLabelFunction"/>  
46.<!-- 这里没有dataField是因为只有一列 -->  
47.    </mx:columns>  
48.  </mx:DataGrid>  
49.    
50.  <mx:TextInput id="textInput" text="{dg.selectedItem}"/>  
51.    
52.</mx:Application> 
分享到:
评论

相关推荐

    Flex中DataGrid和其它控件使用

    总结来说,Flex中的DataGrid和AdvancedDataGrid是强大且灵活的数据展示工具,它们可以与其他多种控件协同工作,满足各种复杂的数据展示和交互需求。理解和掌握这些知识点,将有助于构建高效、用户友好的Flex应用程序...

    flex4 dataGrid 日期格式转换

    总结起来,Flex 4中的`DataGrid`通过结合`DateFormatter`和自定义的`labelFunction`可以方便地实现日期格式的转换,使数据显示更加人性化。理解并熟练运用这些技巧,可以提升用户体验,增强应用程序的易用性。

    flex 映射DataGrid,修改DataGridColumn显示值

    ### Flex中DataGrid某列显示值的自定义与字体颜色更改 #### 一、自定义DataGridColumn显示值 在Flex中,我们可以通过多种方式来定制DataGrid中的DataGridColumn的显示内容,例如更改显示的文本或者根据不同的条件...

    Flex datagrid 自动设置列宽

    在Flex开发中,数据网格(DataGrid)是一个常用的组件,用于展示结构化的数据。然而,Flex DataGrid默认并不提供直接设置列宽的功能,这可能会给开发者带来一些困扰,特别是当数据显示的需求较为复杂时。不过,有...

    Flex DataGrid自动编号示例

    开发者可以通过对DataProvider的理解和labelFunction的合理应用,灵活地在DataGrid中实现自动编号,从而增强用户界面的友好性和数据的易读性。同时,要注意编码实践中的细节问题,比如数据索引的正确处理和性能问题...

    Flex中tree实现的种种细节

    总的来说,“Flex中tree实现的种种细节”这篇文章将涵盖从基本用法到高级特性的全面内容,帮助读者掌握在Flex环境中创建和优化Tree组件的关键知识。通过深入学习和实践,开发者可以更好地满足用户对层次结构数据展示...

    flex做的四种图表(线、柱、饼、区域)直接用js调用

    Flex中的mx.charts.ColumnChart类可以实现这一功能,同样通过dataProvider设置数据源,设置columnWidthRatio调整每个柱子的宽度,以及使用horizontalAxis和verticalAxis定义横纵坐标轴。 饼图适用于展示各部分占...

    Flex数据显示与数据验证

    在Flex中,可以通过内置的验证器类来实现这一目标,这些验证器包括但不限于`CreditCardValidator`、`CurrencyValidator`、`DateValidator`和`EmailValidator`等。 #### 验证器的使用方式 验证器通常被定义在组件的...

    flex 统计,柱状图,饼图。

    在Flex中,可以使用mx.charts系列类来创建柱状图。例如,`BarChart`类是专门用于创建这种图表的。你需要定义数据源,设置X轴和Y轴的属性,以及调整柱状图的颜色、宽度等样式。通过`series`属性,你可以添加一系列...

    flex4 选择树组件

    在提供的"Test.mxml"文件中,可能包含了对上述知识点的实例应用,你可以通过查看和运行这个文件来更深入地理解如何在实际项目中使用Flex4的选择树组件。通过对代码的分析和调试,你将能更好地掌握Tree组件的各种特性...

    Flex ColumnChart获取得焦点改变颜色

    本文将详细解析如何通过Flex中的`ColumnChart`组件来实现当图表获得焦点时改变颜色的功能,这一功能可以提升用户体验,使得交互更加直观。 ### 一、Flex与ColumnChart基础 Flex是一种强大的开发框架,主要用于构建...

    Flex画 坐标轴曲线 项目用过的 flex4 开发

    在Flex4开发中,创建坐标轴曲线图是一种常见的需求,特别是在数据可视化和图表展示的应用中。Flex是一个基于ActionScript和MXML的开放源代码框架,主要用于构建富互联网应用程序(RIA)。它提供了强大的图形和组件库...

    flex 常用组件附例子介绍

    ### Flex常用UI组件详解 #### 一、DataGrid 组件 **DataGrid** 是 Flex 中一个非常重要的组件,主要...以上是 Flex 中 DataGrid 和 List 组件的基本使用及扩展功能介绍,希望能帮助大家更好地理解和使用这些组件。

    flex3的cookbook书籍完整版dpf(包含目录)

    在Flex Builder调试中创建和监视表达式 25.7节. 在Flex Builder中安装Ant窗口 25.8节. 为自动通用任务创建一个Ant构建文件 25.9节. 使用mxmlc和Ant编译Flex应用程序 25.10节. 使用ASDoc和Ant生成文档 25.11节. 使用...

    flex tree的简单使用

    在Flex中,我们可以使用MXML或ActionScript来创建和配置Tree对象。在简单的用法中,我们通常会关注以下几个关键点: 1. **数据源**:Tree组件的数据来源于一个数据提供者,它可以是ArrayCollection、...

    Flex做雷达图例子

    在Flex中,可以使用`CategoryAxis`类来创建轴,并设置其`labelFunction`属性来自定义标签。图例可以通过`Legend`组件来创建,通过`dataProvider`属性关联到图表。 在`RadarChartTest`这个文件中,很可能包含了实现...

    flex学习笔记,技巧学习

    虽然这部分内容似乎不太完整,但可以推断出这是在Flex中对基本元素进行样式设置的例子。 #### 示例代码分析: ```xml ``` - **`fontSize`**: 设置文本的字体大小为16。 - **`color`**: 设置文本颜色为绿色(#36B44...

    flex 根据时间来画出动态曲线

    在本文中,我们将深入探讨一个Flex应用案例,该应用能够根据时间动态地绘制出曲线图,具体实现涉及Flex中的DateTimeAxis类以及相关的事件处理与数据更新机制。 ### Flex中的DateTimeAxis详解 `DateTimeAxis`是Flex...

    flex4.5学习笔记

    ### Flex4.5学习笔记知识点总结 #### 一、Flex基础——布局 **知识点1:Flex布局**...通过上述知识点的学习,我们可以系统地掌握Flex4.5的基本概念、常用技术和最佳实践,为进一步深入研究和应用开发奠定坚实的基础。

Global site tag (gtag.js) - Google Analytics