使用 ActionScript 3.0 组件 |
|
|
|
| 使用 UI 组件 > 使用 DataGrid 组件 > 创建具有 DataGrid 组件的应用程序 | |||
若要创建具有 DataGrid 组件的应用程序,首先必须确定数据的来源。通常,数据来自数组,您可以通过设置 dataProvider 属性将数组拉入网格。也可以使用 DataGrid 和 DataGridColumn 类的方法将数据添加到网格中。
以下示例创建一个 DataGrid,以显示垒球队的花名册。该示例在一个 Array (aRoster) 中定义花名册,然后将其分配给 DataGrid 的 dataProvider 属性。
使用本地数据提供者和 DataGrid 组件:
import fl.data.DataProvider;
bldRosterGrid(aDg);
var aRoster:Array = new Array();
aRoster = [
{Name:"Wilma Carter", Bats:"R", Throws:"R", Year:"So", Home: "Redlands, CA"},
{Name:"Sue Pennypacker", Bats:"L", Throws:"R", Year:"Fr", Home: "Athens, GA"},
{Name:"Jill Smithfield", Bats:"R", Throws:"L", Year:"Sr", Home: "Spokane, WA"},
{Name:"Shirley Goth", Bats:"R", Throws:"R", Year:"Sr", Home: "Carson, NV"},
{Name:"Jennifer Dunbar", Bats:"R", Throws:"R", Year:"Fr", Home: "Seaside, CA"},
{Name:"Patty Crawford", Bats:"L", Throws:"L", Year:"Jr", Home: "Whittier, CA"},
{Name:"Angelina Davis", Bats:"R", Throws:"R", Year:"So", Home: "Odessa, TX"},
{Name:"Maria Santiago", Bats:"L", Throws:"L", Year:"Sr", Home: "Tacoma, WA"},
{Name:"Debbie Ferguson", Bats:"R", Throws:"R", Year: "Jr", Home: "Bend, OR"},
{Name:"Karen Bronson", Bats:"R", Throws:"R", Year: "Sr", Home: "Billings, MO"},
{Name:"Sylvia Munson", Bats:"R", Throws:"R", Year: "Jr", Home: "Pasadena, CA"},
{Name:"Carla Gomez", Bats:"R", Throws:"L", Year: "Sr", Home: "Corona, CA"},
{Name:"Betty Kay", Bats:"R", Throws:"R", Year: "Fr", Home:
"Palo Alto, CA"},
];
aDg.dataProvider = new DataProvider(aRoster);
aDg.rowCount = aDg.length;
function bldRosterGrid(dg:DataGrid){
dg.setSize(400, 300);
dg.columns = ["Name", "Bats", "Throws", "Year", "Home"];
dg.columns[0].width = 120;
dg.columns[1].width = 50;
dg.columns[2].width = 50;
dg.columns[3].width = 40;
dg.columns[4].width = 120;
dg.move(50,50);
};
bldRosterGrid() 函数设置 DataGrid 的大小以及列的顺序与大小。
请注意,您可以单击任意列标题,以根据该列的值按降序对 DataGrid 的内容进行排序。
以下示例使用 addColumn() 方法将 DataGridColumn 实例添加到 DataGrid 中。列表示队员的姓名及其分数。该示例还设置了 sortOptions 属性,以指定每一列的排序选项:Array.CASEINSENSITIVE 用于 Name 列,Array.NUMERIC 用于 Score 列。此外,该示例将 DataGrid 的长设置为行数,宽设置为 200,从而适当地调整 DataGrid 的大小。
为应用程序中的 DataGrid 组件指定列和添加排序:
import fl.controls.dataGridClasses.DataGridColumn;
import fl.events.DataGridEvent;
import fl.data.DataProvider;
// Create columns to enable sorting of data.
var nameDGC:DataGridColumn = new DataGridColumn("name");
nameDGC.sortOptions = Array.CASEINSENSITIVE;
var scoreDGC:DataGridColumn = new DataGridColumn("score");
scoreDGC.sortOptions = Array.NUMERIC;
aDg.addColumn(nameDGC);
aDg.addColumn(scoreDGC);
var aDP_array:Array = new Array({name:"clark", score:3135}, {name:"Bruce", score:403}, {name:"Peter", score:25})
aDg.dataProvider = new DataProvider(aDP_array);
aDg.rowCount = aDg.length;
aDg.width = 200;
以下示例使用 ActionScript 创建一个 DataGrid 组件,并用队员姓名和分数的数组进行填充。
使用 ActionScript 创建 DataGrid 组件实例:此操作将组件添加到库中,但不会在应用程序中显示它。
import fl.controls.DataGrid; import fl.data.DataProvider; var aDg:DataGrid = new DataGrid(); addChild(aDg); aDg.columns = [ "Name", "Score" ]; aDg.setSize(140, 100); aDg.move(10, 40);
此代码创建 DataGrid 实例,然后调整网格大小和定位网格。
var aDP_array:Array = new Array();
aDP_array.push({Name:"Clark", Score:3135});
aDP_array.push({Name:"Bruce", Score:403});
aDP_array.push({Name:"Peter", Score:25});
aDg.dataProvider = new DataProvider(aDP_array);
aDg.rowCount = aDg.length;
以下示例使用 DataGridColumn 类创建 DataGrid 的列。该示例通过将 XML 对象作为 DataProvider() 构造函数的 value 参数传递,来填充 DataGrid。
用 XML 文件加载 DataGrid:import fl.controls.dataGridClasses.DataGridColumn;import fl.data.DataProvider;var teamXML:XML = <team><player name="Player A" avg="0.293" /><player name="Player B" avg="0.214" /><player name="Player C" avg="0.317" /></team>;var nameCol:DataGridColumn = new DataGridColumn("name");nameCol.headerText = "Name";nameCol.width = 120;var avgCol:DataGridColumn = new DataGridColumn("avg");avgCol.headerText = "Average";avgCol.width = 60;var myDP:DataProvider = new DataProvider(teamXML);aDg.columns = [nameCol, avgCol];aDg.width = 200;aDg.dataProvider = myDP;aDg.rowCount = aDg.length;
|
|
|
|