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);
}


发布评论