【转】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>
【转】flex中的labelFunction(combox和dataGrid)的更多相关文章
- SharedObject使用:在FluorineFx.net与Flex中使用共享对象维护在线用户列表实例【转】
一.添加一个新的FluorineFx的服务类项目OnLineService,删除原有的Sample.cs,并添加一个用户类定义与一个ApplicationAdpater类:如下: /*-- User. ...
- Flex中如何通过horizontalTickAligned和verticalTickAligned样式指定线图LineChart横竖方向轴心标记的例子
原文http://blog.minidx.com/2008/12/03/1669.html 接下来的例子演示了Flex中如何通过horizontalTickAligned和verticalTickAl ...
- Flex中TitleWindow传值
Flex中TitleWindow传值 1.设计思路 (1)新建一个DataGrid,在其中最后一列加入三个按钮:新增.修改和删除: (2)点击新增按钮,可以将表格新增一行: (3)单击"修改 ...
- Flex中设置Camera的视频清晰质量的最佳配合
今天需要设置Flex中的Camera组件的一些属性,后来发现清晰度不是很高,于是捣鼓了上午半天,设置了很多的参数,竟然发现手册上就是有现成的一些设置方法,郁闷!不过我还是专门设置了几个有用和必要的属性 ...
- ArcGIS for Flex中引入google map作底图
上篇文章到在ArcGIS View中引入google map,这里讲ArcGIS for Flex中引入google map作底图. 同样道理,以google map作底图,需要编写继承自TiledM ...
- AS与JS相互通信(Flex中调用js函数)
转载自http://www.blogjava.net/Alpha/archive/2009/06/27/284373.html Flex中As调用Js的方法是: 1.导入包 (import f ...
- Flex中NetConnection与NetStream的关系、及浏览器并发连接数测试[转]
最近在做一个基于BS结构的视频会议系统,决定采用开源的FluorineFx.net与Flex结合的方法进行开发,前期开发都非常顺利,包括同步白板等.但到了实时视频传输的时候,原本设计是每个客户端可以显 ...
- Flex中 Array 的IndexOf 的作用
Flex中 Array 的IndexOf 的作用 1.说明 indexOf用于在索引中从小到大查找,假设查得到就返回索引值,查不到就返回-1: 2.实例 (1)设计源代码 <?xml ve ...
- Flex中的折线图
1.问题背景 在Flex中,制作一个折线图.而且给折线图的横轴和纵轴进行样式设置,详细实现过程例如以下: 2.实现实例 (1)设置横轴样式和数据绑定 <mx:horizontalAxis> ...
随机推荐
- mysql-通过例子解释四种隔离级别
SQL标准定义了4种隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的. 低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销. 首先,我们使用 test 数据库, ...
- DM8168 屏蔽 PCIe
DM8168新板在没有做PCI接口的情况下,能够把PCI模块凝视,直接尝试: make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm menuconfi ...
- Leaflet--建设移动设备友好的互动地图
Leaflet 是一个为建设移动设备友好的互动地图,而开发的现代的.开源的 JavaScript 库.它是由 Vladimir Agafonkin 带领一个专业贡献者团队开发,尽管代码仅有 33 KB ...
- zzulioj--1832--贪吃的松鼠(位运算好题)
1832: 贪吃的松鼠 Time Limit: 3 Sec Memory Limit: 2 MB Submit: 43 Solved: 7 SubmitStatusWeb Board Descri ...
- linux下修改完profile文件的环境变量后如何立即生效
方法1: 让/etc/profile文件修改后立即生效 ,可以使用如下命令: # . /etc/profile 注意: . 和 /etc/profile 有空格 方法2: 让/etc/profile文 ...
- SharePoint 修改完或制作完一定要发布
设置了匿名访问但是网站就是需要登录,找了很多问题. 首先想到的映射问题,然后努力检查,最后把代码删掉,然后把站删掉,最后测试出来问题. 点击上方[网站设置] 把修改过的文件发布. 母版也和布局页 一定 ...
- Swift学习笔记(2):错误处理
目录: Error do-catch 断言 Error 在 Swift 中,错误用符合 Error 协议的类型的值来表示.这个空协议表明该类型可以用于错误处理异常. Swift 的枚举类型尤为适合构建 ...
- python import windows文件路经
import sys sys.path.append("E:\\python\\workspacepython\\PY001\\src\\testpy01") import str ...
- js封装each函数
function each(ele,callback){ if(Object.prototype.toString.call(ele) == "[object Array]"){ ...
- UVa 729 The Hamming Distance Problem【枚举排列】
题意:给出数组的长度n,给出h,表示这个数组里面含有h个1,求其所有的排列 用next_permutation就可以了 #include<iostream> #include<cst ...