flex中datagrid添加超链接

想要达到的效果如图中点击datagrid中第二列的任何一个值如“南京”、“杭州”就会触发一个事件,
http://dl.iteye.com/upload/attachment/609708/cae77eec-9c39-3aac-831a-31711fe78c1c.png
在datagrid中可使用 <mx:itemRenderer>
<fx:Component>
<mx:LinkButton />
</fx:Component>
</mx:itemRenderer>
但是 linkbutton所触发的事件如何才能调用到写在script中的方法呢。

使用outerDocument,就可以调用外部的函数,outerDocument 标识符将作用范围更改为查找文件或外部文档。

代码如下:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:supportClasses="com.esri.ags.skins.supportClasses.*" minWidth="955" minHeight="600" creationComplete="init()">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.FlexEvent;
[Bindable]
private var consProjects:ArrayCollection=new ArrayCollection

([{name:'杭州',consOrgName:'中铁一局',projectStatus:'在建',tbOrgName:'建筑队4组',projectManager:'李建刚',projectCost:'3876M',buildingArea:'4000万平米'},

{name:'南京',consOrgName:'中铁四局',projectStatus:'在建',tbOrgName:'建筑队4组',projectManager:'李建刚',projectCost:'3876M',buildingArea:'4000万平米'},

]);


protected function init(event:FlexEvent = null):void
{

}

public function clickEvent(o:Object):void{
Alert.show(o.consOrgName);
}

]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<s:Group width="100%" height="100%">
<s:VGroup width="100%" height="100%">
<s:HGroup width="100%" height="30">
</s:HGroup>
<mx:DataGrid width="100%" dataProvider="{consProjects}">
<mx:columns>
<mx:DataGridColumn headerText="序号" sortable="false" resizable="false" textAlign="center" editable="false" width="40"/>
<mx:DataGridColumn headerText="XXXX" dataField="name">
<mx:itemRenderer>
<fx:Component>
<mx:LinkButton label="{data.name}" color="red" textDecoration="none" click="outerDocument.clickEvent(data)"/>
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="XXXX" dataField="consOrgName"/>
<mx:DataGridColumn headerText="XXXX" dataField="projectStatus"/>
<mx:DataGridColumn headerText="XXXX" dataField="tbOrgName"/>
<mx:DataGridColumn headerText="XXXX" dataField="projectManager"/>
<mx:DataGridColumn headerText="XXXX" dataField="projectCost"/>
<mx:DataGridColumn headerText="XXXX" dataField="buildingArea"/>
</mx:columns>
</mx:DataGrid>
</s:VGroup>
</s:Group>
</s:Application>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值