需要用到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没有排序功能,那都可以用,但如果有排序,就只能用第一种,第二种用引起数据错位
分享到:
相关推荐
在Flex开发中,DataGrid控件是一个非常常用的数据展示组件,它允许开发者以表格的形式展示大量结构化的数据。本文将深入探讨如何在Flex的DataGrid中插入子组件,以实现更丰富的用户界面和交互功能。 一、Flex ...
在这个组件中,我们将包含一个CheckBox组件。 ```mxml ``` 2. **设置Datagrid列的renderer属性**:在Datagrid的定义中,找到你想添加复选框的列,并将renderer属性设置为我们刚才创建的自定义Renderer。 ```...
2. **定义数据提供者**:在DataGrid组件中,使用`dataProvider`属性指定数据源。当数据源是支持分组的ArrayCollection或HierarchicalData时,DataGrid会自动识别并显示分组。 3. **配置`AdvancedDataGrid`组件**:...
在Flex开发中,数据网格(DataGrid)是用于展示数据集合的强大组件,它允许用户以表格形式查看和操作数据。本示例关注的是在DataGrid中嵌套复选框(Checkbox),并实现全选功能。这在需要用户批量选择或操作数据的...
在Flex编程中,DataGrid组件是用于展示结构化数据的强大工具。它允许用户对数据进行排序、筛选和编辑。在实际应用中,我们经常需要实现全选和反选功能,以便用户可以一次性选择或取消选择所有条目。本文将详细讨论...
Flex DataGrid是一个强大的数据展示组件,它在Adobe Flex框架中被广泛使用,用于显示和操作大量结构化的数据。这个组件提供了灵活的布局选项,可定制的列格式化,以及丰富的用户交互功能,如排序、筛选和编辑。...
Flex DataGrid 是 Adobe Flex 框架中的一个组件,它用于在应用程序中显示表格数据。在Flex中,实现数据网格的总计功能是一项常见的需求,它能够帮助用户快速地理解和分析大量数据。本项目提供了一个已经实现了总计...
DataGrid组件是Flex中的一个表格控件,它能够显示二维数据集,如ArrayCollection或XMLListCollection。DataGrid的主要功能包括:列自定义、排序、选择、编辑等。在Flex中,DataGrid通常与数据提供者(如 ...
Flex DataGrid组件是Adobe Flex框架中的一个重要控件,专门用于以表格形式展示数据。它具有丰富的功能和灵活性,常用于企业级应用中显示多属性对象的列表。DataGrid组件不仅支持基本的表格布局,还提供了排序、编辑...
在Flex开发中,数据网格(DataGrid)是一种常用的组件,用于展示结构化的数据。当我们需要在数据网格中实现复选框功能,以便用户可以多选数据行时,通常会遇到两个主要需求:一是如何在标题栏添加复选框,二是如何使...
在Flex开发中,Datagrid组件是用于展示数据集的一个强大工具,它允许用户以表格的形式查看和操作数据。本文将深入探讨如何在Flex的Datagrid中实现数据的合计与平均值计算,帮助开发者更好地理解和应用这些功能。 ...
通过对关键常量和`CHAR_LIB`数组的理解与运用,开发者可以轻松地为自己的项目添加强大的中文排序功能。此外,通过参考提供的链接([http://blog.sina.com.cn/s/blog_5fc933730100iign.html]...
在这个实例中,我们将探讨如何利用Flex的`DataGrid`组件结合XML文件来实现动态数据列表。 首先,让我们深入了解`DataGrid`组件。`DataGrid`是Flex提供的一个可自定义的、可滚动的数据容器,它允许用户以网格形式...
在Flex开发中,DataGrid组件是一个非常常用的控件,它用于展示数据集合,并提供交互式操作,如排序、选择等。本示例聚焦于DataGrid中的CheckBox集成,特别是实现一个全选的功能。以下是对这个主题的详细解释: 一、...
在Flex开发中,DataGrid组件是一个非常常用的控件,用于展示数据列表。在这个场景中,我们需要在DataGrid中添加一个自定义的按钮,并且根据特定的内容来决定这个按钮是否应该被显示。这涉及到Flex组件定制、事件处理...
5. 添加到舞台上:确保将DataGrid添加到父容器中,以便在应用中可见。 三、DataGrid的实例应用 在“FLEX datagrid应用实例”中,我们可以找到以下几种常见应用: 1. 基本展示:展示简单的数据列表,例如用户信息,...
在Flex开发中,DataGrid控件是用于展示结构化数据的常用组件,它可以灵活地显示表格形式的数据。本文将深入探讨如何在DataGrid中显示图片,特别是在与Spring、Hibernate和Struts等框架集成的背景下,如何处理二进制...
因此,为Datagrid添加全选功能可以提高用户体验。 3. **实现方法**: - **CheckBox**: 可以在Datagrid的头行添加一个CheckBox,当用户点击这个CheckBox时,所有的行将被选中或取消选中。为此,我们需要监听CheckBox...