length:uint
[read-only]
Player 版本 : | Flash Player 9.0.28.0 |
数据提供者包含的项目数。
实现
public function get length():uint
示例
如何使用示例
下例创建一个 List 组件实例,并调整列表大小以便与其数据提供者中的项目数匹配:
import fl.controls.List;
import fl.data.DataProvider;
var dp:DataProvider = new DataProvider();
dp.addItem({label:"Item 1"});
dp.addItem({label:"Item 2"});
dp.addItem({label:"Item 3"});
dp.addItem({label:"Item 4"});
var myList:List = new List();
myList.dataProvider = dp;
myList.rowHeight = 35;
myList.rowCount = dp.length;
myList.move(10, 10);
addChild(myList);
public function DataProvider(value:Object = null)
Player 版本 : | Flash Player 9.0.28.0 |
通过将列表、XML 实例或数据对象数组作为数据源,创建一个新的 DataProvider 对象。
参数
| value:Object (default = null ) — 用于创建 DataProvider 的数据。
|
示例
如何使用示例
下例使用
addItem()
方法创建一个新的数据提供者:
import fl.controls.ComboBox;
import fl.data.DataProvider;
var dp:DataProvider = new DataProvider();
dp.addItem({label:"item 1a"});
dp.addItem({label:"item 2a"});
var myComboBox:ComboBox = new ComboBox()
myComboBox.dataProvider = dp;
myComboBox.move(10, 10);
addChild(myComboBox);
下例使用 Array 对象填充数据提供者:
import fl.controls.ComboBox;
import fl.data.DataProvider;
var arr:Array = new Array();
arr.push({label:"item 1b"});
arr.push({label:"item 2b"});
var dp:DataProvider = new DataProvider(arr);
var myComboBox:ComboBox = new ComboBox()
myComboBox.dataProvider = dp;
myComboBox.move(10, 10);
addChild(myComboBox);
下例使用带有属性的 XML 对象填充数据提供者:
import fl.controls.ComboBox;
import fl.data.DataProvider;
var xml:XML = <items>
<item label="item 1c" />
<item label="item 2c" />
</items>;
var dp:DataProvider = new DataProvider(xml);
var myComboBox:ComboBox = new ComboBox()
myComboBox.dataProvider = dp;
myComboBox.move(10, 10);
addChild(myComboBox);
下例使用带有子节点的 XML 对象填充数据提供者:
import fl.controls.ComboBox;
import fl.data.DataProvider;
var xml:XML = <items>
<item>
<label>item 1d</label>
</item>
<item>
<label>item 2d</label>
</item>
</items>;
var dp:DataProvider = new DataProvider(xml);
var myComboBox:ComboBox = new ComboBox()
myComboBox.dataProvider = dp;
myComboBox.move(10, 10);
addChild(myComboBox);
public function addItemAt(item:Object, index:uint):void
Player 版本 : | Flash Player 9.0.28.0 |
将新项目添加到数据提供者的指定索引处。 如果指定的索引超过数据提供者的长度,则忽略该索引。
参数
| item:Object — 包含要添加的项目数据的对象。
|
|
| index:uint — 要在其位置添加项目的索引。
|
引发
另请参见
public function addItems(items:Object):void
Player 版本 : | Flash Player 9.0.28.0 |
向 DataProvider 的末尾追加多个项目,并调度 DataChangeType.ADD
事件。 按照指定项目的顺序添加项目。
参数
另请参见
示例
如何使用示例
下例使用
addItems()
方法向数据提供者添加多个项目:
import fl.controls.DataGrid;
import fl.controls.dataGridClasses.DataGridColumn;
import fl.data.DataProvider;
var arr:Array = [{col1:"1.A", col2:"1.B"}, {col1:"2.A", col2:"2.B"}]
var dp:DataProvider = new DataProvider();
dp.addItems(arr);
trace(dp.length); // 2
var c1:DataGridColumn = new DataGridColumn("col1");
var c2:DataGridColumn = new DataGridColumn("col2");
var myDataGrid:DataGrid = new DataGrid();
myDataGrid.addColumn(c1);
myDataGrid.addColumn(c2);
myDataGrid.dataProvider = dp;
myDataGrid.setSize(200, 160);
myDataGrid.move(10, 10);
addChild(myDataGrid);
public function addItemsAt(items:Object, index:uint):void
Player 版本 : | Flash Player 9.0.28.0 |
向数据提供者的指定索引处添加若干项目,并调度 DataChangeType.ADD
事件。
参数
| items:Object — 要添加到数据提供者的项目。
|
|
| index:uint — 要在其位置插入项目的索引。
|
引发
另请参见
public function concat(items:Object):void
Player 版本 : | Flash Player 9.0.28.0 |
将指定项目连接到当前数据提供者的结尾。 此方法调度 DataChangeType.ADD
事件。
参数
另请参见
public function invalidate():void
Player 版本 : | Flash Player 9.0.28.0 |
使 DataProvider 包含的所有数据项失效,并调度 DataChangeEvent.INVALIDATE_ALL
事件。 项目在更改以后会失效;DataProvider 会自动重绘失效的项目。
另请参见
public function invalidateItem(item:Object):void
Player 版本 : | Flash Player 9.0.28.0 |
使指定的项目失效。 项目在更改以后会失效;DataProvider 会自动重绘失效的项目。
参数
另请参见
public function invalidateItemAt(index:int):void
Player 版本 : | Flash Player 9.0.28.0 |
使指定索引处的项目失效。 项目在更改以后会失效;DataProvider 会自动重绘失效的项目。
参数
引发
另请参见
public function merge(newData:Object):void
Player 版本 : | Flash Player 9.0.28.0 |
将指定数据追加到数据提供者包含的数据,并删除任何重复的项目。 此方法调度 DataChangeType.ADD
事件。
参数
| newData:Object — 要合并到数据提供者的数据。
|
另请参见
public function removeAll():void
Player 版本 : | Flash Player 9.0.28.0 |
从数据提供者中删除所有项目,并调度 DataChangeType.REMOVE_ALL
事件。
另请参见
public function removeItem(item:Object):Object
Player 版本 : | Flash Player 9.0.28.0 |
从数据提供者中删除指定项目,并调度 DataChangeType.REMOVE
事件。
参数
返回
另请参见
public function removeItemAt(index:uint):Object
Player 版本 : | Flash Player 9.0.28.0 |
删除指定索引处的项目,并调度 DataChangeType.REMOVE
事件。
参数
返回
引发
另请参见
public function replaceItem(newItem:Object, oldItem:Object):Object
Player 版本 : | Flash Player 9.0.28.0 |
用新项目替换现有项目,并调度 DataChangeType.REPLACE
事件。
参数
返回
引发
另请参见
public function replaceItemAt(newItem:Object, index:uint):Object
Player 版本 : | Flash Player 9.0.28.0 |
替换指定索引处的项目,并调度 DataChangeType.REPLACE
事件。
参数
返回
引发
另请参见
public function sort(... sortArgs):*
Player 版本 : | Flash Player 9.0.28.0 |
对数据提供者包含的项目进行排序,并调度 DataChangeType.SORT
事件。
参数
返回
| * — 返回值取决于方法是否接收任何参数。 有关详细信息,请参阅 Array.sort() 方法。 当 sortOption 属性设置为 Array.UNIQUESORT 时,该方法返回 0。
|
另请参见
public function sortOn(fieldName:Object, options:Object = null):*
Player 版本 : | Flash Player 9.0.28.0 |
按指定字段对数据提供者包含的项目进行排序,并调度 DataChangeType.SORT
事件。 指定字段可以是字符串或字符串值数组,这些字符串值指定要按优先顺序对其进行排序的多个字段。
参数
| fieldName:Object — 要按其进行排序的项目字段。 该值可以是字符串或字符串值数组。
|
|
| options:Object (default = null ) — 用于排序的选项。
|
返回
| * — 返回值取决于方法是否接收任何参数。 有关详细信息,请参阅“Array.sortOn() 方法”。 如果 sortOption 属性设置为 Array.UNIQUESORT ,则该方法返回 0。
|
另请参见
public function toArray():Array
Player 版本 : | Flash Player 9.0.28.0 |
创建数据提供者包含的数据的 Array 对象表示形式。
返回
| Array — 数据提供者包含的数据的 Array 对象表示形式。
|
该示例演示如何使用数据提供者来维护多个数据网格的内容。
若要运行该示例,请按照下列步骤操作:
- 将 Label、Button、ComboBox、TextInput 和 DataGrid 组件添加到库中。
- 将该代码作为 DataProviderExample.as 另存到 FLA 文件所在的同一目录中。
- 将 FLA 文件中的 Document 类设置为 DataProviderExample。
package
{
import fl.controls.Button;
import fl.controls.ComboBox;
import fl.controls.DataGrid;
import fl.controls.Label;
import fl.controls.TextInput;
import fl.data.DataProvider;
import flash.display.Sprite;
import flash.events.*;
import flash.text.TextFieldAutoSize;
public class DataProviderExample extends Sprite
{
private var southern:DataGrid;
private var northern:DataGrid;
private var world:DataGrid;
private var southernRoster:DataProvider;
private var northernRoster:DataProvider;
private var leagueCB:ComboBox;
private var nameTI:TextInput;
private var goalsTI:TextInput;
private var submitBtn:Button;
public function DataProviderExample() {
southernRoster = new DataProvider();
northernRoster = new DataProvider();
createDataGrids();
createUI();
}
private function createUI():void {
var description:Label = new Label();
description.text = "Enter player's name, goals scored, and hemisphere of origin:";
description.autoSize = TextFieldAutoSize.LEFT;
nameTI = new TextInput();
goalsTI = new TextInput();
var submitBtn:Button = new Button();
submitBtn.label = "Submit Player";
submitBtn.addEventListener(MouseEvent.CLICK, submitPlayer);
leagueCB = new ComboBox();
leagueCB.addItem( { label:"Northern", data: 0 } );
leagueCB.addItem( { label:"Southern", data: 1 } );
description.move(10,10);
nameTI.move(10,40);
nameTI.setSize(150,24);
goalsTI.move(170,40);
goalsTI.setSize(40,24);
leagueCB.move(220,40);
leagueCB.setSize(120,24);
submitBtn.move(350,40);
goalsTI.restrict = "0123456789";
addChild(description);
addChild(leagueCB);
addChild(submitBtn);
addChild(nameTI);
addChild(goalsTI);
}
private function submitPlayer(e:MouseEvent):void {
if(nameTI.text != "" && goalsTI.text != "") {
var targetRoster:DataProvider;
if(leagueCB.selectedItem.label == "Southern") {
targetRoster = southernRoster;
}
else {
targetRoster = northernRoster;
}
targetRoster.addItem( { Name: nameTI.text, Goals: goalsTI.text } );
var worldRoster:DataProvider = southernRoster.clone();
worldRoster.merge(northernRoster);
worldRoster.sortOn("Goals", Array.NUMERIC | Array.DESCENDING);
southernRoster.sortOn("Goals", Array.NUMERIC | Array.DESCENDING);
northernRoster.sortOn("Goals", Array.NUMERIC | Array.DESCENDING);
world.dataProvider = worldRoster;
nameTI.text = "";
goalsTI.text = "";
}
}
private function createDataGrids():void {
southern = new DataGrid();
northern = new DataGrid();
world = new DataGrid();
southern.move(10,100);
northern.move(180,100);
world.move(350,100);
southern.setSize(170, 250);
northern.setSize(170, 250);
world.setSize(170, 250);
southern.columns =
northern.columns =
world.columns = [ "Name", "Goals" ];
southern.dataProvider = southernRoster;
northern.dataProvider = northernRoster;
addChild(southern);
addChild(northern);
addChild(world);
var northernLabel:Label = new Label();
northernLabel.autoSize = TextFieldAutoSize.LEFT;
northernLabel.text = "Southern Hemisphere";
northernLabel.move(10,75);
addChild(northernLabel);
var southernLabel:Label = new Label();
southernLabel.autoSize = TextFieldAutoSize.LEFT;
southernLabel.text = "Northern Hemisphere";
southernLabel.move(180,75);
addChild(southernLabel);
var majorLabel:Label = new Label();
majorLabel.autoSize = TextFieldAutoSize.LEFT;
majorLabel.text = "World";
majorLabel.move(350,75);
addChild(majorLabel);
}
}
}