Flex Datagrid中添加自己的组件

需要用到mx:itemRenderer,一般来说有二种方法
1、重写data方法

<mx:itemRenderer>
<mx:Component>
<mx:HBox width="100%" horizontalScrollPolicy="off">
<mx:Script>
<![CDATA[
import mx.controls.Button;

override public function set data(data:Object):void {
this.removeAllChildren();
var b1:Button = new Button();
b1.label = "下载";
b1.buttonMode = true;
b1.useHandCursor = true;
b1.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void {
outerDocument.downloadFile(data.url);
});
this.addChild(b1);
if (outerDocument.isEditable) {
var b2:Button = new Button();
b2.label = "删除";
b2.buttonMode = true;
b2.useHandCursor = true;
b2.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void {
outerDocument.deleteFile(data.url);
});
this.addChild(b2);
}
}
]]>
</mx:Script>
</mx:HBox>
</mx:Component>
</mx:itemRenderer>

2、利用creationComplete

<mx:itemRenderer>
<mx:Component>
<mx:HBox creationComplete="init(data as Object)" width="100%">
<mx:Script>
<![CDATA[
import mx.controls.Button;

private var url:String;

private function init(data:Object):void {
this.url = data.url.toString();
var b1:Button = new Button();
b1.label = "下载";
b1.buttonMode = true;
b1.useHandCursor = true;
b1.height = this.height;
b1.addEventListener(MouseEvent.CLICK, downloadOperationHandler);
this.addChild(b1);
if (outerDocument.isEditable) {
var b2:Button = new Button();
b2.label = "删除";
b2.buttonMode = true;
b2.useHandCursor = true;
b2.height = this.height;
b2.addEventListener(MouseEvent.CLICK, deleteOperationHandler);
this.addChild(b2);
}
}

private function downloadOperationHandler(event:MouseEvent):void {
outerDocument.downloadFile(url);
}

private function deleteOperationHandler(event:MouseEvent):void {
outerDocument.deleteFile(url);
}
]]>
</mx:Script>
</mx:HBox>
</mx:Component>
</mx:itemRenderer>


上述二种方法,如果datagrid没有排序功能,那都可以用,但如果有排序,就只能用第一种,第二种用引起数据错位
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值