`
macemers
  • 浏览: 41411 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

flex中的labelFunction(combox和dataGrid)

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

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
  <mx:Script>
    <![CDATA[
      [Bindable]
      public var myDataProvider:Array = [  125000000.99,
                1700000000.01, 
                984561321483.56,
                0.99,
                5.75,
                31400000000.01];
      
      public function myLabelFunction(item:Object, column:DataGridColumn):String
      {
        var amount:String = item.toString(); //若有多列,这里需要item.xxx
        var dollars:String = amount.split(".")[0];
        var dollarDigitCount:Number = dollars.toString().length;
        
        var value:String;
        
        if (dollarDigitCount >= 7 && dollarDigitCount <= 9)
        {
          value = dollars.slice(0, -6) + " Million";
        }
        else if (dollarDigitCount >= 10 && dollarDigitCount <= 12)
        {        
          value = dollars.slice(0, -9) + " Billion";
        }
        else if (dollarDigitCount >= 13)
        {
          value = dollars.slice(0, -12) + " Trillion";
        }
        else
        {
          value = item.toString();
        }
        
        return "$" + value;
      }
    ]]>
  </mx:Script>
 
  <mx:DataGrid id="dg" dataProvider="{myDataProvider}" >
    <mx:columns>
      <mx:DataGridColumn headerText="Click To Sort" labelFunction="myLabelFunction"/>
<!-- 这里没有dataField是因为只有一列 -->
    </mx:columns>
  </mx:DataGrid>
  
  <mx:TextInput id="textInput" text="{dg.selectedItem}"/>
  
</mx:Application>



http://liguoliang.com/2009/01/668/
http://www.cnblogs.com/xxcainiao/archive/2008/05/11/1192464.html
分享到:
评论

相关推荐

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

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

    使用DataGrid中扩展ItemRenderer和HeaderRenderer进行操作

    如果仅仅只是简单的显示数据,或者对显示数据做一些格式化操作,基本的DataGrid,加labelFunction支持就可以满足了,但大多我们需要针对不同的数据和对象,进行不同的渲染,比如checkbox啦,下拉选择框,日期等等,...

    一个非常不错的flex时间控件,内附运行图

    一个非常不错的flex时间控件 ()}" labelFunction="selectDateTime" width="150"/&gt; public function selectDateTime(item:Date):String { return item.fullYear + "-" + item.month + "-" + item.dateUTC + ...

    60度CMS网站源码 1.0

    管理员可以利用本功能,在线比较Web空间中的网站ASP文件和60度官方发布的相应版本中原始ASP文件,方便Web空间文件管理。3、修复当移动文章时不能自动删除相应的html文件问题4、修复新添加文章时显示空页问题5、修复...

    my test just a test

    &lt;base:HDateField id="flt_date" width="70" tabIndex="7" editable="true" labelFunction="formatDate" restrict="[A-Z,0-9]" text="{this.formatDate(new Date)}" validator="{fltDateValidator}" /&gt; ...

Global site tag (gtag.js) - Google Analytics