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

若要创建具有 DataGrid 组件的应用程序,您必须首先确定数据的来源。网格的数据可以来源于使用 Flash Remoting 从 Macromedia ColdFusion、Java 或 .Net 内的数据库查询中馈入的记录集,也可以来源于数据集或数组。若要将数据拉到网格中,您需要将 DataGrid.dataProvider 属性设置为记录集、数据集或数组。也可以使用 DataGrid 和 DataGridColumn 类的方法以本地方式创建数据。与 DataGrid 组件在同一帧中的任何 Array 对象均会复制 DataProvider API 的方法、属性和事件。

注意

在使用 Data 组件将数据绑定到 DataGrid 组件时,该对象会逆向绑定各个列(类似于循环访问对象或数组)。因此,若要以不同方式对 DataGrid 组件中的数据进行排序,就必须显式定义各个列。

使用 Flash Remoting 将 DataGrid 组件添加到应用程序:

  1. 在 Flash 中,选择"文件">"新建",然后选择"Flash 文档"。
  2. 在"组件"面板中,双击 DataGrid 组件以将其添加到舞台上。
  3. 在"属性"检查器中,输入实例名称 myDataGrid
  4. 在"动作"面板中的第 1 帧上,输入以下代码:
    myDataGrid.dataProvider = recordSetInstance;
    

    Flash Remoting 记录集 recordSetInstance 即会分配给 myDataGriddataProvider 属性。

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

使用本地数据提供程序将 DataGrid 组件添加到应用程序中:

  1. 在 Flash 中,选择"文件">"新建",然后选择"Flash 文档"。
  2. 在"组件"面板中,双击 DataGrid 组件以将其添加到舞台上。
  3. 在"属性"检查器中,输入实例名称 myDataGrid
  4. 在"动作"面板中的第 1 帧上,输入以下代码:
    myDP = new Array({name:"Chris", price:"Priceless"}, {name:"Nigel", price:"Cheap"});
    myDataGrid.dataProvider = myDP;
    

    name(名称)和 price(价格)字段被用作列标题,它们的值将填充每一行中的单元格。

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

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

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

使用 ActionScript 创建 DataGrid 组件实例:

  1. 将 DataGrid 组件从"组件"面板拖到当前文档的库中。

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

  2. 在主时间轴中选择第一帧,打开"动作"面板,然后输入以下代码:
    this.createClassObject(mx.controls.DataGrid, "my_dg", 10, {columnNames:["name", "score"]});
    my_dg.setSize(140, 100);
    my_dg.move(10, 40);
    

    此脚本使用 UIObject.createClassObject() 方法创建 DataGrid 实例,然后设置网格大小并定位网格。

  3. 创建一个数组,向数组中添加数据,并将该数组标识为数据网格的数据提供程序:
    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;
    
  4. 选择"控制">"测试影片"。