Пакет | fl.controls.dataGridClasses |
Класс | public class DataGridColumn |
Наследование | DataGridColumn ![]() |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, 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 [статические]
Ссылка на модель объекта класса или функции. | Object | |
resizable : Boolean = true
Указывает, разрешено ли пользователю изменять ширину столбца. | DataGridColumn | ||
sortable : Boolean = true
Указывает, может ли пользователь щелкнуть заголовок текущего столбца, чтобы отсортировать данные, предоставляемые поставщиком данных. | DataGridColumn | ||
sortCompareFunction : Function
Функция обратного вызова, вызываемая во время сортировки данных в столбце. | DataGridColumn | ||
sortDescending : Boolean = false
Указывает, следует ли сортировать элементы компонента DataGridColumn в восходящем или нисходящем порядке. | DataGridColumn | ||
sortOptions : uint = 0
Одна или несколько определенных констант, заданных именем или номером и разделенных оператором побитового ИЛИ (|). | 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
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, 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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Указывает имя поля или свойства в элементе, предоставляемом поставщиком данных, связанном с данным столбцом.
editable | свойство |
public var editable:Boolean = true
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Указывает, можно ли редактировать элементы столбца. Значение true
указывает на то, что элементы можно редактировать; значение false
указывает на то, что их редактировать нельзя.
Если этому свойству присвоено значение true
, а свойство editable
компонента DataGrid также имеет значение true
, элементы в столбце разрешается изменять. Их можно отредактировать по отдельности, нажав элемент или перейдя к нему с помощью клавиши Tab и клавиш со стрелками.
Значение по умолчанию true
editorDataField | свойство |
public var editorDataField:String = "text"
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Указывает имя свойства редактора элементов, содержащего новые данные для элемента списка.
Например, свойство itemEditor
имеет значение по умолчанию TextInput. Поэтому значением свойства editorDataField
по умолчанию является text
. Это значение определяет свойство text
компонента TextInput.
Значение по умолчанию "text"
headerRenderer | свойство |
headerRenderer:Object
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Класс, используемый для визуализации заголовка этого столбца.
Это может быть свойство типа Class, Sprite или String. Если тип свойства — String, строковое значение должно быть полным классифицированным именем класса.
Значение по умолчанию null
public function get headerRenderer():Object
public function set headerRenderer(value:Object):void
См. также
headerText | свойство |
headerText:String
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, 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
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Режим редактора методов ввода (IME). IME дает пользователям возможность вводить текст на китайском, японском и корейском. Класс flash.system.IMEConversionMode определяет константы, которые будут использованы в качестве действительных значений этого свойства.
Если свойству присвоено значение null
, режим IME выбирается, исходя из значения свойства imeMode
компонента DataGrid.
Значение по умолчанию 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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Указывает класс экземпляров редактора элементов, используемый для столбца, если он доступен для редактирования. Это может быть свойство типа Class, Sprite или 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 |
Версии среды выполнения: | AIR 1.0, 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
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, 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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Указывает, разрешено ли пользователю изменять ширину столбца. Значение true
указывает на то, что пользователь может изменять ширину столбца; значение false
указывает на то, что пользователь не может этого делать.
Значение по умолчанию true
sortable | свойство |
public var sortable:Boolean = true
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, 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
:
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 |
Версии среды выполнения: | AIR 1.0, 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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Указывает, следует ли сортировать элементы компонента DataGridColumn в восходящем или нисходящем порядке. Значение true
указывает, что компонент DataGridColumn сортируется в нисходящем порядке. Значение false
указывает на то, что DataGridColum сортируется в восходящем порядке.
Значение по умолчанию false
sortOptions | свойство |
public var sortOptions:uint = 0
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Одна или несколько определенных констант, заданных именем или номером и разделенных оператором побитового ИЛИ (|). Эти константы используются для того, чтобы указать операцию сортировки.
Значение по умолчанию 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
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Указывает, видим ли столбец. Значение true
указывает на то, что столбец видим; значение false
указывает на то, что столбец невидим.
Значение по умолчанию true
public function get visible():Boolean
public function set visible(value:Boolean):void
visible
каждого из этих столбцов можно включать и выключать, нажимая на соответствующий экземпляр компонента Button в рабочей области.
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
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, 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 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Создает новый экземпляр DataGridColumn.
ПараметрыcolumnName:String (default = null ) — Имя, отображаемое в заголовке столбца. Если имя столбца не указано, используется значение dataField .
|
См. также
itemToLabel | () | метод |
public function itemToLabel(data:Object):String
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Возвращает строку, которую средство визуализации элементов отображает для заданного объекта данных. Если объекту DataGridColumn или его компоненту DataGrid присвоено свойство labelFunction
, значение которого отличается от нуля, он присваивает эту функцию объекту данных. В противном случае этот метод извлекает содержимое поля, определяемого свойством dataField
, или получает значение строки объекта данных. Если с его помощью не удается преобразовать данный параметр в строку, возвращается один символ пробела.
Параметры
data:Object — Объект, создаваемый путем визуализации.
|
String — Отображаемая строка, основанная на указанном объекте data .
|
toString | () | метод |
public function toString():String
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Возвращает строковое представление объекта DataGridColumn.
ВозвращаетString — "[object DataGridColumn]"
|
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]); } } }