2024年5月30日发(作者:)

ActionScript编程 使用数据列表组件

作用:

数据列表(DataGrid)组件允许用户将数据显示在行和列构成的网

格中。

说明:

DataGrid是基于列表的组件,提供以行和列分布的网格。可以在

该组件顶部指定一个可选标题行,用于显示所有属性名称。每一行由

一列或多列组成,其中每一列表示属于指定数据对象的一个属性。

DataGrid组件用于查看数据,并不适合用作类似于HTML表格的布局

工具。

创建DataGrid组件实例的方法如下所示。

import id;

//导入DataGrid类

var dataGrid:DataGrid = new DataGrid();

DataGrid组件实例可以获取或定义的属性较多,下面只介绍一些

与其它组件实例不同的属性:

 columns 获取或设置一个DataGridColumn对象数组,每个可以显示的

列为一个对象。如果未显式设置,DataGrid组件将检查数据提供者中的

第一个项目,查找该项目的属性,然后按字母顺序显示这些属性。默认

值为[]。

 editedItemPosition 获取或设置正在编辑的数据提供者项目的项目渲染

器的列索引和行索引。如果未编辑任何项目,则此属性为null。该对象

有两个字段:columnIndex表示当前项目从零开始的列索引;rowIndex

表示当前项目从零开始的行索引。

editedItemRenderer 获取对当前正在编辑的项目所属的DataGrid组件

中项目渲染器的引用。如果未编辑任何项目,则此属性包含null值。

headerHeight 获取或设置DataGrid标题的高度,以像素为单位。默认

值为25。

minColumnWidth 设置DataGrid列的最小宽度,以像素为单位。如果

该值设置为NaN,则可以分别为DataGrid组件的每一列设置最小列宽。

默认值为NaN。

resizableColumns 指示用户能否更改列的尺寸。如果为true,表示用户

可以更改列的尺寸;否则列的尺寸是固定的。

showHeaders 获取或设置一个布尔值,该值指示DataGrid组件是否显

示列标题。如果为true,表示DataGrid 组件显示列标题;否则不显示

列标题。默认值为true。

 sortableColumns 指示用户能否通过单击列标题单元格对数据提供者

中的项目进行排序。如果该值为true,则用户可以通过单击列标题单元

格对数据提供者项目进行排序;否则不可通过单击进行排序。

sortDescending 获取当用户单击列标题时列的排序顺序。如果为true,

表示列按降序排序;否则表示列按升序排序。

sortIndex 获取要排序的列的索引。默认值为-1。

DataGrid组件实例包含有以下多种方法,用于创建新的组件实例、

插入列、检索组件中的列数、删除指定列等。

DataGrid() 创建新的DataGrid组件实例。

addColumn() 在columns数组的末尾添加列。该方法包含一个column

参数,表示一个字符串或DataGridColumn对象。

addColumnAt() 在columns数组中指定索引处插入列。该方法包含

column和index两个参数,前者表示要插入的列的字符串或

DataGridColumn 对象;后者表示列要插入的位置的数组索引。

 createItemEditor() 使用itemEditor属性指定的编辑器为位于

editedItemPosition属性标识的列索引和行索引处的项目渲染器创建项

目编辑器。该方法将编辑器实例设置为 itemEditorInstance 属性。

 destroyItemEditor() 关闭当前在项目渲染器上打开的项目编辑器。通常

从itemEditEnd事件的事件侦听器调用该方法,并在这之前调用

preventDefault()方法以阻止默认事件侦听器执行。

 editField() 编辑DataGrid 组件中的给定字段或属性。该方法包含有3

个参数:index表示要编辑的数据提供者项目的索引;dataField表示要

编辑的数据提供者项目中的字段或属性的名称;data表示新数据值。

 getCellRendererAt() 获取DataGrid中指定位置的单元格渲染器的实例。

该方法包含row和column两个参数,前者表示行索引,后者表示列索

引。

getColumnAt() 检索位于columns 数组中指定索引处的列。该方法包

含一个index参数,表示要检索的列的索引,或者null(如果找不到列)。

getColumnCount() 检索DataGrid组件中的列数。

getColumnIndex() 检索具有指定名称的列的索引;如果未找到匹配项,

则为-1。该方法包含一个name参数,表示定位的列的数据字段。

itemToCellRenderer() DataGrid 组件对任何给定项都有多个单元格,因

此itemToCellRenderer方法始终返回 null。

removeAllColumns() 删除DataGrid组件中的所有列。

removeColumnAt() 删除位于columns数组中指定索引处的列。该方法

包含一个index参数,表示要删除的列的索引。

scrollToIndex() 将列表滚动至位于指定索引处的项目。如果索引超出

范围,则滚动位置不发生变化。该方法包含一个newCaretIndex参数,

表示要滚动到的索引位置。

 spaceColumnsEqually() 将可见列的宽度重置为相同大小。

DataGrid组件特别适用于显示包含多个属性的对象。该组件

所显示的数据可以包含在DataProvider对象中或显示为对象的数

组。DataGrid组件的列可通过DataGridColumn对象的列表表示,

其中每个对象包含特定于列的信息。

示例:

创建一个名称为dataGrid的数据列表组件,该组件的第1列用来

显示星座的月份,第2列用来显示星座的名称。当用户单击列的标题

时,将会输出该列的相关参数,如下所示。

import id;

import idColumn;

import ovider;

import idEvent;

//导入所需的类

var dp:DataProvider = new DataProvider();

m({月份:"3月21日-4月19日", 星座:"白羊座"});

m({月份:"4月20日-5月20日", 星座:"金牛座"});

m({月份:"5月21日-6月21日", 星座:"双子座"});

m({月份:"6月21日-7月22日", 星座:"巨蟹座"});

m({月份:"7月23日-8月22日", 星座:"狮子座"});

m({月份:"8月23日-9月22日", 星座:"处女座"});

m({月份:"9月23日-10月22日", 星座:"天秤座"});

m({月份:"10月23日-11月21日", 星座:"天蝎座"});

m({月份:"11月22日-12月21日", 星座:"射手座"});

m({月份:"12月22日-1月19日", 星座:"摩羯座"});

m({月份:"1月20日-2月18日", 星座:"水瓶座"});

m({月份:"2月19日-3月20日", 星座:"双鱼座"});

//定义数据列表组件所显示的内容

var dataGrid:DataGrid = new DataGrid();

umn("月份");

umn("星座");

//定义列的名称

ovider = dp;

e(300, 200);

(10, 10);

ntListener(_RELEASE,

headerReleaseHandler);

addChild(dataGrid);

function headerReleaseHandler(event:DataGridEvent):void {

var dg:DataGrid = as DataGrid;

trace("dataField:", eld, "(columnIndex:" + Index +

")");

trace("sortIndex:", dex);

trace("sortDescending:", scending);

}