组件语言参考 |
|
|
|
| DataGrid 组件(仅限 Flash Professional) > 使用 DataGrid 组件(仅限 Flash Professional) > 创建具有 DataGrid 组件的应用程序 | |||
若要创建具有 DataGrid 组件的应用程序,您必须首先确定数据的来源。网格的数据可以来源于使用 Flash Remoting 从 Macromedia ColdFusion、Java 或 .Net 内的数据库查询中馈入的记录集,也可以来源于数据集或数组。若要将数据拉到网格中,您需要将 DataGrid.dataProvider 属性设置为记录集、数据集或数组。也可以使用 DataGrid 和 DataGridColumn 类的方法以本地方式创建数据。与 DataGrid 组件在同一帧中的任何 Array 对象均会复制 DataProvider API 的方法、属性和事件。
|
注意 |
在使用 Data 组件将数据绑定到 DataGrid 组件时,该对象会逆向绑定各个列(类似于循环访问对象或数组)。因此,若要以不同方式对 DataGrid 组件中的数据进行排序,就必须显式定义各个列。 |
使用 Flash Remoting 将 DataGrid 组件添加到应用程序:myDataGrid.dataProvider = recordSetInstance;
Flash Remoting 记录集 recordSetInstance 即会分配给 myDataGrid 的 dataProvider 属性。
使用本地数据提供程序将 DataGrid 组件添加到应用程序中:
myDP = new Array({name:"Chris", price:"Priceless"}, {name:"Nigel", price:"Cheap"});
myDataGrid.dataProvider = myDP;
name(名称)和 price(价格)字段被用作列标题,它们的值将填充每一行中的单元格。
为应用程序中的 DataGrid 组件指定列和添加排序:
var myDataGrid:mx.controls.DataGrid;
// 创建列以启用数据的排序。
myDataGrid.addColumn("name");
myDataGrid.addColumn("score");
var myDP_array:Array = new Array({name:"Clark", score:3135}, {name:"Bruce", score:403}, {name:"Peter", score:25})
myDataGrid.dataProvider = myDP_array;
// 为 DataGrid 创建侦听器对象。
var listener_obj:Object = new Object();
listener_obj.headerRelease = function(evt_obj:Object) {
switch (evt_obj.target.columns[evt_obj.columnIndex].columnName) {
case "name" :
myDP_array.sortOn("name", Array.CASEINSENSITIVE);
break;
case "score" :
myDP_array.sortOn("score", Array.NUMERIC);
break;
}
};
// 为 DataGrid 添加侦听器。
myDataGrid.addEventListener("headerRelease", listener_obj);
使用 ActionScript 创建 DataGrid 组件实例:此操作将组件添加到库中,但不会在应用程序中显示。
this.createClassObject(mx.controls.DataGrid, "my_dg", 10, {columnNames:["name", "score"]});
my_dg.setSize(140, 100);
my_dg.move(10, 40);
此脚本使用 UIObject.createClassObject() 方法创建 DataGrid 实例,然后设置网格大小并定位网格。
var myDP_array:Array = new Array();
myDP_array.push({name:"Clark", score:3135});
myDP_array.push({name:"Bruce", score:403});
myDP_array.push({name:"Peter", score:25});
my_dg.dataProvider = myDP_array;
|
|
|
|