Flex实现DataGrid的序号列
要在Flex的DataGrid里添加序号列,大体上有两种方法:
设置DataGridColumn的labelFunction。
其大致的思路是,获取到当前DataGrid的dataProvider及当前行的data,调用getItemIndex方法获取到当前的行的序号。
具体可参考 http://wmcai.blog.163.com/blog/static/480242008111115724283/。这种方法比较直观,也很容易想到。
但重用性很差,其生成序号的labeldFunction无法重用。
设置DataGridColumn的ItemRenderer。
即自定义一个itemRenderer来处理序列号的生成。这种方法重用性很高。至于如何生成序号,这里需要些小技巧。
SequenceItemRenderer.as
package com.carnation.component.common
{
import mx.collections.IList;
import mx.controls.Label;
import mx.controls.listClasses.BaseListData;
import mx.controls.listClasses.ListBase;
public class SequenceItemRenderer extends Label
{
public function SequenceItemRenderer()
{
super();
}
// 另一种方法获取dataProvider并调用getItemIndex方法
// override public function set data(value:Object):void{
// super.data = value;
// text = (((listData.owner as ListBase).dataProvider as IList)
// .getItemIndex(data) + 1).toString();
// }
override public function set listData(value:BaseListData):void{
super.listData = value;
text = ((value.owner as ListBase).itemRendererToIndex(this) + 1).toString();
}
}
}
Test.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()">
<mx:Script>
<!--[CDATA[
import com.carnation.component.common.SequenceItemRenderer;
private var indexRenderer:Class = SequenceItemRenderer;
private function init():void{
var array:Array = [];
for(var i:int = 1; i <= 10; i++){
array.push({name:"name"+i.toString()});
}
grid.dataProvider = array;
}
]]-->
</mx:Script>
<mx:DataGrid id="grid">
<mx:columns>
<mx:DataGridColumn headerText="no" itemRenderer="{new ClassFactory(inde
相关文档:
http://www.adobe.com/cn/devnet/flex/articles/best_practices_pt2_07.html
Flex 最佳做法 - 第 2 部分: 开发做法
Flex 开发最佳做法回顾
这些做法可以应用到所有 Flex 应用程序。请查看这些做法:
创建和使用 assets 目录
使用 assets 目录中的子目录
使用 SWF 目录
使用 images 目录
&n ......
测试其实没有太多的可比较性,我主要想比较相互之间对数据访问的速度和数据传输大小的比较,Flex的性能上出乎我的意料之外
我采用的是Flex直接访问Java服务,和Silverlight 访问webservice
从同样的SQL语句得到的数据大小看,flex读取数据流量的比silverlight小5倍,原因是flex访问数据时对数据进行了压缩
从显示数据的性 ......
Flex Builder 3.0 For Eclipse plugin准备安装.
2009-11-11 15:38
这两天准备学习Flex,于是下载了Flex Builder 3.0 For Eclipse plugin准备安装.
但是安装后启动Eclipse,找了半天也没找到Flex.而且Flex Builder会把JRE也安装.觉得这样很不爽.
所以我想到能不能来个Flex Builder绿色安装方法呢.
想到就做.下面是我的 ......
进入年末,项目也开发得差不多了,只是偶尔需要出差安装我们系统,当然出差是男人们的事,也就不会让我出差了,因而最近时间比较充裕,就借此机会学习了一下Flex。刚开始学,是根据Flex3权威指南的视频教程来的,第一讲学完了,感觉还比较容易,第二讲一直没下下来,所以先对第一讲学的做个笔记。
一、新建工程:File&mdas ......
下载地址一:
http://download.macromedia.com/pub/flex/flex_builder/FB3_win.exe
大小: 424 MB ;未进行压缩的 Flex Builder 3 安装文件
不用注册登录,可以直接下载。
下载地址二:
http://trials.adobe.com/Applications/.../FB3_WWEJ.exe
大小: 385.84 MB ; 已经压缩的 Flex Builder 3 安装文件
需要注册 ......