易截截图软件、单文件、免安装、纯绿色、仅160KB

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


相关文档:

flex中遇到监听事件异步调用

最近搞了个flex的小玩意儿,大致就是用urlloader去读服务器上的xml文件,获得数据后将内容存到数组里。
本来想着挺简单的,想着这程序应该是顺序执行完,相当然的以为监听事件会在返回后再继续执行下面的语句,谁知道上来就出错了,在监听事件里的代码是异步执行的,这就导致主程序的数据不正常,也就是不能在自己想要的位 ......

Flex 优势之我见

        提前声明,本文是个人原创,而且仅代表个人意见还看法,希望大家给予指正。
学习应用Flex应该也有1年了,曾经让我废寝忘食的技术,不敢说现在全部掌握了,但基本原理我已经明白了。这个时候透过了Flex那神秘的外表,透过了一层层的大雾,让我看的越来越清晰了。越来越能想明白 ......

在FLex Builder外部编译FLEX项目

Windows
     设置环Path境变量,加入flex的SDk的bin目录路径,如:f:\flex_sdk_3\bin。设置好了之后,打开命令行,定位到项目目录,输入如下命令:mxmlc 项目名.mxml。如果此时出现了“Error:could not find JVM”,这时需要手动指定JRE路径,打开Flex3 SDK的bin目录,用文本编辑器打开jvm. ......

flex中socket的使用

flex中使用socket与其他语言(如Java)socket交互的例子。
    自从Adobe Flash Player升级到9.0.124后,由于安全策略的修改,原来的socket连接方式将不能被使用,而必须采用新的安全策略方式来验证,具体的过程如下:
    1.首先检测服务端的843端口是否提供安全策略文件;
  &n ......

flex上传文件(flex+asp.net)

废话不说,直接代码部分代码摘抄自网上,在此想原作者表示感谢
1、服务端 uploadFile.ashx
<%@ WebHandler Language="VB" Class="UploadFile" %>
Imports System
Imports System.Web
Imports System.Web.HttpServerUtility
Imports System.IO
Imports System.Web.HttpRequest
Public Class UploadFile : Impl ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号