パッケージ | fl.controls.dataGridClasses |
クラス | public class DataGridColumn |
継承 | DataGridColumn ![]() |
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
DataGridColumn のデータを表示するコンポーネントの種類を指定できます。この他に、列ヘッダーに表示するテキストの指定や、列の編集、ソート、サイズ変更を可能にするかどうかの指定も行えます。
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
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 | ||
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 | |
![]() |
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | |
DataGridColumn オブジェクトのストリング表現を返します。 | DataGridColumn | ||
![]() |
指定されたオブジェクトのプリミティブな値を返します。 | Object |
cellRenderer | プロパティ |
cellRenderer:Object
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
この列でアイテムを表示するために使用されるクラスです。このプロパティのタイプには、Class、Sprite、String のいずれかを指定できます。このプロパティタイプを String にする場合、その String 値にはクラスの完全修飾名を指定する必要があります。
デフォルト値: null。
実装
public function get cellRenderer():Object
public function set cellRenderer(value:Object):void
関連する API エレメント
例 ( この例の使用方法 )
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 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
列に関連付けられているデータプロバイダーアイテム内のフィールドまたはプロパティの名前です。
editable | プロパティ |
public var editable:Boolean = true
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
列内のアイテムが編集可能かどうかを示します。この値を true
に設定すると、列内のアイテムが編集可能になり、false
に設定すると、編集不能になります。
このプロパティが true
で、DataGrid の editable
プロパティも true
であれば、列内のアイテムは編集可能です。アイテムをクリックするか、Tab キーや矢印キーを使ってアイテムに移動することにより、そのアイテムを個別に編集できます。
デフォルト値: true。
editorDataField | プロパティ |
public var editorDataField:String = "text"
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
リストアイテムの新しいデータを格納するアイテムエディターのプロパティの名前です。
例えば、デフォルトの itemEditor
は TextInput であるため、editorDataField
プロパティのデフォルト値は "text"
となります。この値は TextInput コンポーネントの text
プロパティを指定します。
デフォルト値: "text"。
headerRenderer | プロパティ |
headerRenderer:Object
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
この列のヘッダーを表示するために使用されるクラスです。
このプロパティのタイプには、Class、Sprite、String のいずれかを指定できます。このプロパティタイプを String にする場合、その String 値にはクラスの完全修飾名を指定する必要があります。
デフォルト値: null。
実装
public function get headerRenderer():Object
public function set headerRenderer(value:Object):void
関連する API エレメント
headerText | プロパティ |
headerText:String
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.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
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
入力メソッドエディター(IME)のモードです。IME を使用することによって、ユーザーは中国語、日本語、および韓国語のテキストを入力できます。このプロパティの有効な値として使用する定数は、flash.system.IMEConversionMode クラスで定義します。
このプロパティが null
である場合、IME のモードは DataGrid コンポーネントの imeMode
プロパティの値に設定されます。
デフォルト値: null。
実装
public function get imeMode():String
public function set imeMode(value:String):void
関連する API エレメント
itemEditor | プロパティ |
public var itemEditor:Object = fl.controls.dataGridClasses.DataGridCellEditor
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.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
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
この列に表示するテキストを決定する関数です。特に指定しない限り、データフィールドのテキストのうち、列名と一致するテキストが列に表示されます。ただし、1 つの列に複数のデータフィールドを表示することや、規定外の形式のコンテンツを表示することもできます。これは、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
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
列の最小幅です(ピクセル単位)。
デフォルト値: 20。
実装
public function get minWidth():Number
public function set minWidth(value:Number):void
関連する API エレメント
例 ( この例の使用方法 )
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 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
この列の幅をユーザーが変更できるかどうかを示します。この値を true
に設定すると、ユーザーは列の幅を変更できるようになり、false
に設定すると、ユーザーは列の幅を変更できなくなります。
デフォルト値: true。
sortable | プロパティ |
public var sortable:Boolean = true
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.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
に設定して、1 つのソートできない列を持つ 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
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
列内のデータをソートするときに呼び出されるコールバック関数です。このプロパティが指定されていない場合、データは、sortOptions
プロパティの設定に応じてストリングまたは番号順にソートされます。sortCompareFunction
プロパティを指定すれば、現在のデータグリッド列に自作のカスタムソーティングメソッドを適用できます。
デフォルト値: null。
実装
public function get sortCompareFunction():Function
public function set sortCompareFunction(value:Function):void
関連する API エレメント
例 ( この例の使用方法 )
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 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
DataGridColumn を昇順にソートするか降順にソートするかを示します。この値を true
に設定すると、DataGridColumn は降順にソートされ、false
に設定すると、DataGridColum は昇順にソートされます。
デフォルト値: false。
sortOptions | プロパティ |
public var sortOptions:uint = 0
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
名前や番号が付けられた定義済み定数です。複数ある場合には、OR(|)ビット単位演算子で区切られます。これらの定数はソート処理の指定に使用されます。
デフォルト値: 0。
関連する API エレメント
例 ( この例の使用方法 )
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
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.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 | プロパティ |
DataGridColumn | () | コンストラクター |
itemToLabel | () | メソッド |
public function itemToLabel(data:Object):String
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
指定されたデータオブジェクトに対してアイテムレンダラーが表示するストリングを返します。DataGridColumn またはその DataGrid コンポーネントの labelFunction
プロパティが null 値ではない場合、そのデータオブジェクトに関数を適用します。そうでない場合、このメソッドは dataField
プロパティで指定されたフィールドの内容を抽出するか、データオブジェクトのストリング値を取得します。このメソッドは、パラメーターをストリングに変換できない場合にスペースを 1 つ返します。
パラメーター
data:Object — レンダリングされるオブジェクトです。
|
String — 指定された data オブジェクトに基づく表示可能なストリングです。
|
toString | () | メソッド |
- DataGrid および Button コンポーネントをライブラリに追加します。
- このコードを FLA と同じディレクトリに DataGridColumnExample.as という名前で保存します。
- FLA 内の DocumentClass を DataGridColumnExample に設定します。
package { import flash.display.Sprite; import flash.events.MouseEvent; import fl.data.DataProvider; import fl.events.DataChangeEvent; import fl.controls.DataGrid; import fl.controls.Button; import fl.controls.dataGridClasses.DataGridColumn; 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]); } } }
Tue Jun 12 2018, 10:34 AM Z