包 | fl.controls.dataGridClasses |
类 | public class DataGridColumn |
继承 | DataGridColumn Object |
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
可以指定显示 DataGridColumn 数据的组件的类型。 可以指定的特征包括出现在列标题中的文本以及是否可以对列进行编辑、排序或大小调整。
另请参见
属性 | 定义方 | ||
---|---|---|---|
cellRenderer : Object
用于在此列中呈现项目的类。
| DataGridColumn | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。
| Object | ||
dataField : String
标识与列关联的数据提供者项目中的字段或属性的名称。
| DataGridColumn | ||
editable : Boolean = true
指示是否可以编辑列中的项目。
| DataGridColumn | ||
editorDataField : String = "text"
标识项目编辑器属性的名称,该属性包含列表项目的新数据。
| DataGridColumn | ||
headerRenderer : Object
用于呈现此列的标题的类。
| DataGridColumn | ||
headerText : String
要在列标题中显示的列名称。
| DataGridColumn | ||
imeMode : String
输入法编辑器 (IME) 模式。
| DataGridColumn | ||
itemEditor : Object = fl.controls.dataGridClasses.DataGridCellEditor
指示列可编辑时用于列的项目编辑器实例的类。
| DataGridColumn | ||
labelFunction : Function
确定要在此列中显示的文本的函数。
| DataGridColumn | ||
minWidth : Number
列的最小宽度,以像素为单位。
| DataGridColumn | ||
prototype : Object
[static]
对类或函数对象的原型对象的引用。
| Object | ||
resizable : Boolean = true
指示是否允许用户更改列的宽度。
| DataGridColumn | ||
sortable : Boolean = true
指示用户是否可以通过单击当前列的标题对数据提供者进行排序。
| DataGridColumn | ||
sortCompareFunction : Function
对列中的数据进行排序时调用的回调函数。
| DataGridColumn | ||
sortDescending : Boolean = false
指示是按升序还是降序对 DataGridColumn 进行排序。
| DataGridColumn | ||
sortOptions : uint = 0
一个或多个定义的常量,通过名称或数字来标识并且通过按位 OR (|) 运算符分隔。
| DataGridColumn | ||
visible : Boolean
指示列是否可见。
| DataGridColumn | ||
width : Number
列的宽度(以像素为单位)。
| DataGridColumn |
方法 | 定义方 | ||
---|---|---|---|
DataGridColumn(columnName:String = null)
创建新的 DataGridColumn 实例。
| DataGridColumn | ||
指示对象是否已经定义了指定的属性。
| Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。
| Object | ||
返回项目渲染器为给定数据对象显示的字符串。
| DataGridColumn | ||
指示指定的属性是否存在、是否可枚举。
| Object | ||
设置循环操作动态属性的可用性。
| Object | ||
返回 DataGridColumn 对象的字符串表示形式。
| DataGridColumn | ||
返回指定对象的原始值。
| Object |
cellRenderer | 属性 |
cellRenderer:Object
[read-write]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
用于在此列中呈现项目的类。 该属性的类型可以是 Class、Sprite 或 String。 如果属性类型为 String,则 String 值必须为完全限定类名。
默认值为 null
.
public function get cellRenderer():Object
public function set cellRenderer(value:Object):void
另请参见
import fl.controls.dataGridClasses.DataGridColumn; var dgc:DataGridColumn = new DataGridColumn("Field"); dgc.cellRenderer = "MyCustomCellRendererClass"; dg.addColumn(dgc);
dataField | 属性 |
public var dataField:String
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
标识与列关联的数据提供者项目中的字段或属性的名称。
editable | 属性 |
public var editable:Boolean = true
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
指示是否可以编辑列中的项目。 true
值指示可以编辑列项目;false
值指示无法编辑列项目。
如果该属性设置为 true
,并且 DataGrid 的 editable
属性也为 true
,则列中的项目是可编辑的,可以通过单击某个项目或使用 Tab 和箭头键导航到该项目来单独编辑该项目。
默认值为 true
.
editorDataField | 属性 |
public var editorDataField:String = "text"
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
标识项目编辑器属性的名称,该属性包含列表项目的新数据。
例如,默认的 itemEditor
为 TextInput,因此 editorDataField
属性的默认值为 "text"
。 该值指定 TextInput 组件的 text
属性。
默认值为 "text"
.
headerRenderer | 属性 |
headerRenderer:Object
[read-write]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
用于呈现此列的标题的类。
该属性的类型可以是 Class、Sprite 或 String。 如果属性类型为 String,则 String 值必须为完全限定类名。
默认值为 null
.
public function get headerRenderer():Object
public function set headerRenderer(value:Object):void
另请参见
headerText | 属性 |
headerText:String
[read-write]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
要在列标题中显示的列名称。 默认情况下,DataGrid 组件将 dataField
属性值用作列名称。
public function get headerText():String
public function set headerText(value:String):void
import fl.controls.DataGrid; import fl.controls.dataGridClasses.DataGridColumn; import fl.data.DataProvider; var dp:DataProvider = new DataProvider(); dp.addItem({name:"Person A", sales:13453}); dp.addItem({name:"Person B", sales:23432}); dp.addItem({name:"Person C", sales:9454}); var nameCol:DataGridColumn = new DataGridColumn("name"); nameCol.headerText = "Employee:"; var salesCol:DataGridColumn = new DataGridColumn("sales"); salesCol.headerText = "Sales:"; salesCol.labelFunction = currencyFormatter; salesCol.sortOptions = Array.NUMERIC; var myDataGrid:DataGrid = new DataGrid(); myDataGrid.addColumn(nameCol); myDataGrid.addColumn(salesCol); myDataGrid.dataProvider = dp; myDataGrid.move(10, 10); myDataGrid.setSize(320, 240); addChild(myDataGrid); function currencyFormatter(item:Object):String { return "$" + item.sales.toFixed(0); }
imeMode | 属性 |
imeMode:String
[read-write]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
输入法编辑器 (IME) 模式。 IME 使用户能够用中文、日文和韩文输入文本。 flash.system.IMEConversionMode 类定义一些常量,这些常量将用作该属性的有效值。
如果该属性为 null
,则 IME 的模式将设置为 DataGrid 组件的 imeMode
属性值。
默认值为 null
.
public function get imeMode():String
public function set imeMode(value:String):void
另请参见
itemEditor | 属性 |
public var itemEditor:Object = fl.controls.dataGridClasses.DataGridCellEditor
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
指示列可编辑时用于列的项目编辑器实例的类。 该属性的类型可以是 Class、Sprite 或 String。 如果属性类型为 String,则 String 值必须为完全限定类名。
默认值为 "fl.controls.dataGridClasses.DataGridCellEditor"
.
import fl.controls.dataGridClasses.DataGridColumn; var dgc:DataGridColumn = new DataGridColumn("Field"); dgc.itemEditor = "MyCustomItemEditorClass"; dg.addColumn(dgc);
labelFunction | 属性 |
labelFunction:Function
[read-write]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
确定要在此列中显示的文本的函数。 默认情况下,列显示与列名称匹配的数据字段的文本。 不过,列也可以用来显示多个数据字段的文本,或者用来显示格式不正确的内容。 可以通过使用 labelFunction
属性指定回调函数来实现此操作。
如果同时定义了 labelFunction
和 labelField
属性,则 labelFunction
优先。
默认值为 null
.
public function get labelFunction():Function
public function set labelFunction(value:Function):void
import fl.controls.DataGrid; import fl.controls.ScrollPolicy; import fl.controls.dataGridClasses.DataGridColumn; import fl.data.DataProvider; var i:uint; var totalRows:uint = 16; var dp:DataProvider = new DataProvider(); for (i = 0; i < totalRows; i++) { dp.addItem({col1:getRandomNumber(), col2:getRandomNumber(), col3:getRandomNumber(), col4:getRandomNumber()}); } var c1:DataGridColumn = new DataGridColumn("col1"); c1.sortOptions = Array.NUMERIC; var c2:DataGridColumn = new DataGridColumn("col2"); c2.sortOptions = Array.NUMERIC; var c3:DataGridColumn = new DataGridColumn("col3"); c3.sortOptions = Array.NUMERIC; c3.labelFunction = currencyFormatter; var dg:DataGrid = new DataGrid(); dg.setSize(200, 300); dg.addColumn(c1); dg.addColumn(c2); dg.addColumn(c3); dg.dataProvider = dp; addChild(dg); function getRandomNumber():Number { return Math.random() * 100; } function currencyFormatter(data:Object):String { var value:Number = Number(data.col3); return "$" + value.toFixed(2); }
labelFunction
和 sortCompareFunction
:
import fl.controls.DataGrid; import fl.controls.dataGridClasses.DataGridColumn; import fl.data.DataProvider; var data:XML = <data> <item name="Employee A" isManager="1" /> <item name="Employee B" isManager="0" /> <item name="Employee C" isManager="1" /> </data>; var dp:DataProvider = new DataProvider(data); var nameDGC:DataGridColumn = new DataGridColumn("name"); nameDGC.sortCompareFunction = isManager; nameDGC.labelFunction = nameLabelFunction; var myDataGrid:DataGrid = new DataGrid() myDataGrid.addColumn(nameDGC); myDataGrid.dataProvider = dp; myDataGrid.width = 200; myDataGrid.rowCount = myDataGrid.length; myDataGrid.move(10, 10); addChild(myDataGrid); function nameLabelFunction(item:Object):String { var managerString:String = ""; if (item.isManager == "1") { managerString = " (Manager)"; } return item.name + managerString; } function isManager(itemA:Object, itemB:Object):int { if (itemA.isManager > itemB.isManager) { return -1; } else if (itemA.isManager < itemB.isManager) { return 1; } else { return 0; } }
minWidth | 属性 |
minWidth:Number
[read-write]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
列的最小宽度,以像素为单位。
默认值为 20
.
public function get minWidth():Number
public function set minWidth(value:Number):void
另请参见
import fl.controls.DataGrid; import fl.controls.dataGridClasses.DataGridColumn; import fl.data.DataProvider; import fl.events.DataGridEvent; var data:XML = <data> <row col1="item 1.A" col2="item 1.B" col3="item 1.C" /> <row col1="item 2.A" col2="item 2.B" col3="item 2.C" /> <row col1="item 3.A" col2="item 3.B" col3="item 3.C" /> </data>; var dp:DataProvider = new DataProvider(data); var c1:DataGridColumn = new DataGridColumn("col1"); c1.minWidth = 100; var c2:DataGridColumn = new DataGridColumn("col2"); var c3:DataGridColumn = new DataGridColumn("col3"); var myDataGrid:DataGrid = new DataGrid(); myDataGrid.addColumn(c1); myDataGrid.addColumn(c2); myDataGrid.addColumn(c3); myDataGrid.dataProvider = dp; myDataGrid.move(10, 10); myDataGrid.setSize(300, 200); myDataGrid.addEventListener(DataGridEvent.COLUMN_STRETCH, columnStretchHandler); addChild(myDataGrid); function columnStretchHandler(event:DataGridEvent):void { var column:DataGridColumn; for each (column in myDataGrid.columns) { trace(column.dataField, "width:" + column.width, "minWidth:" + column.minWidth); } trace("---"); }
resizable | 属性 |
public var resizable:Boolean = true
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
指示是否允许用户更改列的宽度。 true
值指示用户可以更改列宽;false
值指示用户无法更改列宽。
默认值为 true
.
sortable | 属性 |
public var sortable:Boolean = true
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
指示用户是否可以通过单击当前列的标题对数据提供者进行排序。 true
值指示可以通过单击列标题对列进行排序;false
值指示无法通过单击列标题对列进行排序。
默认值为 true
.
import fl.controls.DataGrid; import fl.controls.dataGridClasses.DataGridColumn; import fl.data.DataProvider; import fl.events.DataGridEvent; var data:XML = <dataProvider> <data col1="Person A" col2="11.383" /> <data col1="Person B" col2="3.399" /> <data col1="Person C" col2="25.624" /> </dataProvider> var dp:DataProvider = new DataProvider(data); var c1:DataGridColumn = new DataGridColumn("col1"); var c2:DataGridColumn = new DataGridColumn("col2"); c2.sortable = false; var myDataGrid:DataGrid = new DataGrid(); myDataGrid.addColumn(c1); myDataGrid.addColumn(c2); myDataGrid.dataProvider = dp; myDataGrid.move(10, 10); myDataGrid.setSize(160, 120); addChild(myDataGrid);
sortable
属性设置为 false
来创建带有一个不可排序列的 DataGrid:
import fl.controls.DataGrid; import fl.controls.dataGridClasses.DataGridColumn; import fl.data.DataProvider; import fl.events.DataGridEvent; var xmlDP:XML = <items> <item name="Person 1" bio="Person 1 bio" /> <item name="Person 2" bio="Person 2 bio" /> </items>; var dp:DataProvider = new DataProvider(xmlDP); var nameCol:DataGridColumn = new DataGridColumn("name"); nameCol.headerText = "Name:"; var bioCol:DataGridColumn = new DataGridColumn("bio"); bioCol.headerText = "Bio:"; bioCol.sortable = false; var myDataGrid:DataGrid = new DataGrid(); myDataGrid.addColumn(nameCol); myDataGrid.addColumn(bioCol); myDataGrid.dataProvider = dp; myDataGrid.rowCount = dp.length; myDataGrid.width = 200; myDataGrid.move(10, 10); myDataGrid.addEventListener(DataGridEvent.HEADER_RELEASE, headerReleaseHandler); addChild(myDataGrid); function headerReleaseHandler(event:DataGridEvent):void { var myDG:DataGrid = event.currentTarget as DataGrid; trace("dataField:" + event.dataField); trace("columnIndex:" + event.columnIndex); trace("{DataGrid}.sortDescending:" + myDG.sortDescending); trace("{DataGridColumn}.sortDescending:" + myDG.getColumnAt(event.columnIndex).sortDescending); trace(""); }
sortCompareFunction | 属性 |
sortCompareFunction:Function
[read-write]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
对列中的数据进行排序时调用的回调函数。 如果未指定该属性,则按字符串或数字对数据进行排序,具体取决于 sortOptions
属性。 如果指定了,则 sortCompareFunction
属性允许您为当前数据网格列创建您自己的自定义排序方法。
默认值为 null
.
public function get sortCompareFunction():Function
public function set sortCompareFunction(value:Function):void
另请参见
labelFunction
和 sortCompareFunction
:
import fl.controls.DataGrid; import fl.controls.dataGridClasses.DataGridColumn; import fl.data.DataProvider; var data:XML = <data> <item name="Employee A" isManager="1" /> <item name="Employee B" isManager="0" /> <item name="Employee C" isManager="1" /> </data>; var dp:DataProvider = new DataProvider(data); var nameDGC:DataGridColumn = new DataGridColumn("name"); nameDGC.sortCompareFunction = isManager; nameDGC.labelFunction = nameLabelFunction; var myDataGrid:DataGrid = new DataGrid() myDataGrid.addColumn(nameDGC); myDataGrid.dataProvider = dp; myDataGrid.width = 200; myDataGrid.rowCount = myDataGrid.length; myDataGrid.move(10, 10); addChild(myDataGrid); function nameLabelFunction(item:Object):String { var managerString:String = ""; if (item.isManager == "1") { managerString = " (Manager)"; } return item.name + managerString; } function isManager(itemA:Object, itemB:Object):int { if (itemA.isManager > itemB.isManager) { return -1; } else if (itemA.isManager < itemB.isManager) { return 1; } else { return 0; } }
sortDescending | 属性 |
public var sortDescending:Boolean = false
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
指示是按升序还是降序对 DataGridColumn 进行排序。 true
值指示按降序对 DataGridColumn 进行排序;false
值指示按升序对 DataGridColum 进行排序。
默认值为 false
.
sortOptions | 属性 |
public var sortOptions:uint = 0
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
一个或多个定义的常量,通过名称或数字来标识并且通过按位 OR (|) 运算符分隔。 这些常量用于指定排序操作。
默认值为 0
.
另请参见
sortOptions
属性来指定应该按数字顺序对数据网格列进行排序:
import fl.data.DataProvider; import fl.controls.dataGridClasses.DataGridColumn; var data:XML = <players> <player name="Player 1" score="1234" /> <player name="Player 2" score="198" /> <player name="Player 3" score="987" /> </players>; var dp:DataProvider = new DataProvider(data); var nameDGC:DataGridColumn = new DataGridColumn("name"); var scoreDGC:DataGridColumn = new DataGridColumn("score"); scoreDGC.sortOptions = Array.NUMERIC; dg.addColumn(nameDGC); dg.addColumn(scoreDGC); dg.dataProvider = dp;
visible | 属性 |
visible:Boolean
[read-write]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
指示列是否可见。 true
值指示列可见;false
值指示列不可见。
默认值为 true
.
public function get visible():Boolean
public function set visible(value:Boolean):void
visible
属性。
import fl.controls.Button; import fl.controls.DataGrid; import fl.controls.dataGridClasses.DataGridColumn; import fl.data.DataProvider; var dp:DataProvider = new DataProvider(); dp.addItem({name:"Person A", average:0.297}); dp.addItem({name:"Person B", average:0.288}); dp.addItem({name:"Person C", average:0.310}); var nameCol:DataGridColumn = new DataGridColumn("name"); nameCol.headerText = "Name:"; var averageCol:DataGridColumn = new DataGridColumn("average"); averageCol.headerText = "Average:"; averageCol.labelFunction = numberFormatter; averageCol.sortOptions = Array.NUMERIC; averageCol.visible = false; var myDataGrid:DataGrid = new DataGrid(); myDataGrid.addColumn(nameCol); myDataGrid.addColumn(averageCol); myDataGrid.dataProvider = dp; myDataGrid.rowCount = dp.length; myDataGrid.width = 320; myDataGrid.move(10, 10); addChild(myDataGrid); var nameButton:Button = new Button(); nameButton.label = "Toggle name"; nameButton.toggle = true; nameButton.selected = nameCol.visible; nameButton.move(myDataGrid.x, myDataGrid.y + myDataGrid.height + 10); nameButton.addEventListener(Event.CHANGE, changeHandler); addChild(nameButton); var averageButton:Button = new Button(); averageButton.label = "Toggle average"; averageButton.toggle = true; averageButton.selected = averageCol.visible; averageButton.move(nameButton.x + nameButton.width + 10, nameButton.y); averageButton.addEventListener(Event.CHANGE, changeHandler); addChild(averageButton); function numberFormatter(item:Object):String { return Number(item.average).toFixed(3); } function changeHandler(event:Event):void { var colIndex:int = -2; var col:DataGridColumn; switch (event.currentTarget) { case nameButton: colIndex = myDataGrid.getColumnIndex("name"); break; case averageButton: colIndex = myDataGrid.getColumnIndex("average"); break; default: return; } if (colIndex > -1) { col = myDataGrid.getColumnAt(colIndex); col.visible = !col.visible; myDataGrid.removeColumnAt(colIndex); myDataGrid.addColumnAt(col, colIndex); } myDataGrid.spaceColumnsEqually(); }
width | 属性 |
width:Number
[read-write]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
列的宽度(以像素为单位)。
默认值为 100
.
public function get width():Number
public function set width(value:Number):void
另请参见
DataGridColumn | () | 构造函数 |
public function DataGridColumn(columnName:String = null)
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
创建新的 DataGridColumn 实例。
参数columnName:String (default = null ) — 要在列标题中显示的列名称。 如果未指定名称,则使用 dataField 值。
|
另请参见
itemToLabel | () | 方法 |
public function itemToLabel(data:Object):String
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
返回项目渲染器为给定数据对象显示的字符串。 如果 DataGridColumn 或者它的 DataGrid 组件具有一个非空的 labelFunction
属性,则会将该函数应用于数据对象。 否则,此方法会提取 dataField
属性指定的字段的内容,或者获取数据对象的字符串值。 如果该方法无法将参数转换为字符串,则会返回一个空格。
参数
data:Object — 要呈现的对象。
|
String — 可显示的字符串基于指定的 data 对象。
|
toString | () | 方法 |
public function toString():String
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9.0.28.0 |
返回 DataGridColumn 对象的字符串表示形式。
返回String — “[DataGridColumn 对象]”
|
若要运行该示例,请按照下列步骤操作:
package { import fl.controls.Button; import fl.controls.DataGrid; import fl.controls.dataGridClasses.DataGridColumn; import fl.data.DataProvider; import fl.events.DataChangeEvent; import flash.display.Sprite; import flash.events.MouseEvent; public class DataGridColumnExample extends Sprite { private var dg:DataGrid; private var dp:DataProvider; private var names:Array = [ "Mary", "Bob", "Sue", "Joe" ]; public function DataGridColumnExample() { dp = new DataProvider(); dp.addEventListener(DataChangeEvent.DATA_CHANGE,dataChanged); dg = new DataGrid(); addChild(dg); dg.move(10,45); dg.setSize(450,300); dg.addColumn(new DataGridColumn("name")); dg.addColumn(new DataGridColumn("phone")); dg.addColumn(new DataGridColumn("email")); var firstColumn = dg.columns[0]; firstColumn.resizable = false; var secondColumn = dg.columns[1]; secondColumn.sortable = false; var thirdColumn = dg.columns[2]; thirdColumn.sortable = false; var addContactBtn:Button = new Button(); addContactBtn.label = "Add Contact"; addContactBtn.move(10,10); addContactBtn.addEventListener(MouseEvent.CLICK, addContact); addChild(addContactBtn); } private function getRandomPhone():String { return randomDigit()+randomDigit()+randomDigit()+"-"+randomDigit()+randomDigit()+randomDigit()+"-"+randomDigit()+randomDigit()+randomDigit()+randomDigit(); } private function randomDigit():String { return String(Math.round(Math.random()*10)%10); } private function getRandomName():String { return names[Math.round(Math.random()*names.length)%names.length]; } private function addContact(e:MouseEvent):void { var randomName:String = getRandomName() dp.addItem( { name: randomName, phone: getRandomPhone(), email: randomName + "@fictitious.com" } ); } private function dataChanged(e:DataChangeEvent):void { var changedItems:Array = e.items; dg.addItem(changedItems[0]); } } }
当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/fl/controls/dataGridClasses/DataGridColumn.html