`
keren
  • 浏览: 1583522 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex中datagrid动态添加列

    博客分类:
  • Flex
阅读更多
http://q.sohu.com/forum/5/topic/2275790
动态添加 DataGrid 的列
大家都知道在Flex中基本上每一个MXML 标签都对应着一个AS类。所以你既可以用MXML声明组件,也可以使用ActionScript创建,而后一种方法尤为灵活。今天我就遇到了一个需要动态创建DataGrid的程序,经过数次实验之后,终于成功。

1.首先,需要动态创建一个DataGrid。
程序代码
var dg:DataGrid = new DataGrid();
dg.id = “myDG”; // 设定id
dg.width = 400; // 设定宽度
………… // 其它属性
这些写好之后要将其添加到程序的 DisplayList中,这里假设我有一个 id 为 “vb” 的 VBOX 容器,可以这么写:
程序代码
vb.addChild(dg);
写完这些先看看效果吧:
效果如图所示,就这么一个类似面板的东西,里面没有我们通常见到的列表。为什么呢?因为你创建 DataGrid 的时候那些列不是自带的,而是需要另外创建的。那些列是 mx.controls.dataGridClasses.DataGridColumn 的实例,需要另外创建。接下来我们就来创建
2. 创建DataGridColumn。
一般来说,你需要几列就创建几个DataGridColumn。比如:
程序代码
var column1:DataGridColumn = new DataGridColumn();
column1.headerText = “column1″;
……………… // 其它属性的设定
var column2:DataGridColumn = new DataGridColumn();
column2.headerText = “column2″;
……………… // 其它属性的设定
3.将创建的DataGridColumn添加到DataGrid中。
DataGrid有一个属性columns,是一个数组,它包含了DataGrid中所有column实例。
我直接这样添加列:
程序代码
dg.columns.concat(column1);
dg.columns.concat(column2);
然后运行,发现运行结果和没有添加一样!! 怎么会这样呢?语法没有错误啊。再仔细看了帮助中关于DataGrid 的 columns属性介绍,发现这么一段话:
引用内容
If you want to change the set of columns, you must get this array, make modifications to the columns and order of columns in the array, and then assign the new array to the columns property. This is because the DataGrid control returned a new copy of the array of columns and therefore did not notice the changes.
原来你引用这个columns属性的时候并不是引用它本身,而是获得了它的一个新的拷贝,之后你做的所有操作都是在这个拷贝上做得,自然无法影响原来的属性值。改写一下刚才的代码:
程序代码
dg.columns = dg.columns.concat(column1);
dg.columns = dg.columns.concat(column2);
分享到:
评论

相关推荐

    FLEX的datagrid合计、平均值

    在Flex开发中,Datagrid组件是用于展示数据集的一个强大工具,它允许用户以表格的形式查看和操作数据。本文将深入探讨如何在Flex的Datagrid中实现数据的合计与平均值计算,帮助开发者更好地理解和应用这些功能。 ...

    flex 自定义 datagrid 列头带组合框进行过滤

    通过以上步骤,我们可以在Flex的DataGrid中实现自定义列头带有组合框的过滤功能,使得用户能够更直观、方便地筛选数据。这种自定义组件的方式不仅增强了组件的灵活性,也提供了更好的交互性,提高了应用的可用性。在...

    Flex 自定义Datagrid的ItemRender

    在Flex开发中,数据网格(Datagrid)是用于展示数据集合的强大组件,它允许用户以表格形式查看和操作数据。然而,Datagrid的默认渲染器可能无法满足所有复杂的需求,这时我们就需要自定义ItemRender来扩展其功能。...

    Flex4 DataGrid控件行编辑项目

    在DataGrid中添加和删除行涉及到数据源的动态操作。添加新行时,需要创建一个新的数据对象,将其添加到数据源,然后DataGrid会自动更新以显示新行。删除行则需要从数据源中移除相应的数据对象,并刷新DataGrid。 五...

    flex动态生成datagrid表头

    3. **设置列数据**:通过遍历数据源,动态创建并添加DataGridColumn到DataGrid: ```actionscript for each (var column:Object in columns) { var dataGridColumn:DataGridColumn = new DataGridColumn(); ...

    flex datagrid中数据列合计

    "flex datagrid中数据列合计"这个主题涉及到在Flex DataGrid中实现数据列的总计功能,这通常是为了帮助用户快速理解数据集的整体趋势或进行数据分析。在Flex中,我们可以通过自定义组件和操作数据提供者来实现这一...

    flex DataGrid xml 动态数据列表实例

    在这个实例中,我们将探讨如何利用Flex的`DataGrid`组件结合XML文件来实现动态数据列表。 首先,让我们深入了解`DataGrid`组件。`DataGrid`是Flex提供的一个可自定义的、可滚动的数据容器,它允许用户以网格形式...

    flex datagrid 添加按钮

    为了添加按钮,我们需要创建一个自定义的列渲染器,这个渲染器将在DataGrid的每一行中显示按钮。 1. **自定义列渲染器**: - 在Flex中,我们可以创建一个MXComponent或UIComponent的子类来作为渲染器。这个组件将...

    flex下拉dataGrid

    在Flex开发中,"flex下拉dataGrid"是一种常见的用户界面组件组合,它结合了下拉菜单(Dropdown)和数据网格(DataGrid)的功能,用于提供丰富的数据选择体验。这样的设计通常用于当用户需要从一个较大的数据集合中...

    flex的dataGrid添加复选框(checkBox)

    这个教程将详细解释如何在Flex的DataGrid中动态添加复选框,并通过一个名为`DataGridDemo`的示例项目来演示这一过程。 首先,我们需要了解Flex中的DataGrid组件。DataGrid是基于MX组件库的一个控件,它能够与数据...

    Flex dataGrid 自定义显示列

    在描述中提到的"ColumnConfig.fxp"文件,很可能是Flex项目的一部分,包含了关于DataGrid列配置的元数据或源代码。此文件扩展名 ".fxp" 是Adobe Flex Builder项目的一种导出格式,通常包含项目的MXML、ActionScript...

    flex DataGrid 表头分组

    在Flex开发中,数据网格(DataGrid)是用于展示大量结构化数据的常用组件。它允许用户以表格的形式查看和操作数据。当我们处理的数据需要进行分类或者分组时,Flex DataGrid 提供了表头分组的功能,这使得数据的展示...

    Flex Datagrid checkbox实现

    在Flex Datagrid中实现复选框功能,主要是通过添加一个自定义的列renderer来完成。Renderer是Datagrid中的一个小部件,负责渲染每一行或每一列的数据。对于复选框,我们可以创建一个CheckBox类的实例,然后将其设置...

    Flex动态创建DataGrid设置图片

    本教程主要聚焦于如何在Flex中动态创建DataGrid,并向其中添加图片,这在创建交互式、富媒体应用时非常有用。通过以下两种方法,你可以实现这个功能。 ### 方法一:使用ItemRenderer 1. **定义ItemRenderer**: ...

    FLEX4实践—动态生成DataGrid及应用客户化itemRenderer.doc

    总结起来,这个例子展示了如何在Flex4中动态生成`DataGrid`,处理动态数据结构,以及通过客户化`itemRenderer`优化特定数据类型的显示。开发者可以灵活地根据后端返回的数据结构生成相应的UI,同时提供更人性化的...

    Flex中DataGrid和其它控件使用

    3. **ComboBoxColumn**:在某些列中,用户可能需要从预定义的选项中选择值,ComboBoxColumn可以满足这种需求。它允许我们在DataGrid中嵌入下拉列表。 4. **CheckBox**:通过使用CheckBoxField,可以在DataGrid中...

    flex基于datagrid控件的增删改查及分页实现

    - **创建**(Create):在DataGrid中添加新记录,通常通过在网格的最后一行添加一个新的空白行,然后由用户填写数据完成。 - **读取**(Read):DataGrid自动显示数据提供者中的数据。 - **更新**(Update):用户...

    flex中dataGrid全选和全不选功能

    在DataGrid中添加一个列用于显示复选框,用于单行的选择。这里我们使用`AdvancedDataGridColumn`,并设置`sortable`为`false`,因为选择列通常不需要排序功能。同时,我们指定了`headerRenderer`和`itemRenderer`,...

    flex 把datagrid的内容导出到Excel

    本文将深入探讨如何使用Flex来实现一个功能,即把Datagrid组件中的内容导出到Excel文件。 Datagrid是Flex中的一个核心组件,用于展示表格数据。它提供了丰富的功能,如排序、分页和自定义列显示。然而,有时用户...

Global site tag (gtag.js) - Google Analytics