创建具有 DataGrid 组件的应用程序

若要创建具有 DataGrid 组件的应用程序,首先必须确定数据的来源。通常,数据来自数组,您可以通过设置 dataProvider 属性将数组拉入网格。也可以使用 DataGrid 和 DataGridColumn 类的方法将数据添加到网格中。

以下示例创建一个 DataGrid,以显示垒球队的花名册。该示例在一个 Array (aRoster) 中定义花名册,然后将其分配给 DataGrid 的 dataProvider 属性。

使用本地数据提供者和 DataGrid 组件:

  1. 在 Flash 中,选择"文件">"新建",然后选择"Flash 文件 (ActionScript 3.0)"。
  2. 将一个 DataGrid 组件从"组件"面板拖到舞台上。
  3. 在"属性"检查器中,输入实例名称"aDg"。
  4. 打开"动作"面板,在主时间轴中选择第 1 帧,然后输入以下 ActionScript 代码:
    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 的大小以及列的顺序与大小。

  5. 选择"控制">"测试影片"。

    请注意,您可以单击任意列标题,以根据该列的值按降序对 DataGrid 的内容进行排序。

以下示例使用 addColumn() 方法将 DataGridColumn 实例添加到 DataGrid 中。列表示队员的姓名及其分数。该示例还设置了 sortOptions 属性,以指定每一列的排序选项:Array.CASEINSENSITIVE 用于 Name 列,Array.NUMERIC 用于 Score 列。此外,该示例将 DataGrid 的长设置为行数,宽设置为 200,从而适当地调整 DataGrid 的大小。

为应用程序中的 DataGrid 组件指定列和添加排序:

  1. 在 Flash 中,选择"文件">"新建",然后选择"Flash 文件 (ActionScript 3.0)"。
  2. 将一个 DataGrid 组件从"组件"面板拖到舞台上。
  3. 在"属性"检查器中,输入实例名称"aDg"。
  4. 打开"动作"面板,在主时间轴中选择第 1 帧,然后输入以下 ActionScript 代码:
    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;
    
  5. 选择"控制">"测试影片"。

以下示例使用 ActionScript 创建一个 DataGrid 组件,并用队员姓名和分数的数组进行填充。

使用 ActionScript 创建 DataGrid 组件实例:

  1. 创建一个新的 Flash 文件 (ActionScript 3.0) 文档。
  2. 将一个 DataGrid 组件从"组件"面板拖到当前文档的"库"面板中。

    此操作将组件添加到库中,但不会在应用程序中显示它。

  3. 打开"动作"面板,在主时间轴中选择第 1 帧,然后输入以下 ActionScript 代码:
    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 实例,然后调整网格大小和定位网格。

  4. 创建一个数组,向数组中添加数据,并将该数组标识为 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;
    
  5. 选择"控制">"测试影片"。

以下示例使用 DataGridColumn 类创建 DataGrid 的列。该示例通过将 XML 对象作为 DataProvider() 构造函数的 value 参数传递,来填充 DataGrid。

用 XML 文件加载 DataGrid:

  1. 创建一个新的 Flash 文件 (ActionScript 3.0) 文档。
  2. 在"组件"面板中,双击 DataGrid 组件以将其添加到舞台上。
  3. 在"属性"检查器中,输入实例名称"aDg"。
  4. 打开"动作"面板,在主时间轴中选择第 1 帧,然后输入以下 ActionScript 代码:
    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;
    
  5. 选择"控制">"测试影片"。