Flex Blog

Search:
  • Home
  • Examples
    • Thumb

      Flex Examples

      Check out our Flex Examples!

    • Thumb

      Flash Builder Examples

      Check out our Flash Builder Examples!

    • Thumb

      AIR Examples

      Check out our AIR Examples!

    • Thumb

      Flex Mobile Examples

      Check out our Flex Mobile Examples!

    Adobe® Flex, Adobe® Flash Builder and Adobe® AIR are registered trademarks of Adobe Systems.
  • Components
    • Thumb

      WP Flex Contact Form

      Check out our WP Flex Contact Form!

    • Thumb

      Flash CountDown Plugin

      Check out our Flash CountDown Plugin!

    This is an overview of all our Flash/Flex based Components.
  • Jobs
  • Flex Books
  • Forum
  • Contact Us
Subscribe to Flex BlogSubscribe
  • Examples
  • iOS
Browse > Home / Examples / Dynamic AdvancedDataGridColumn in Flex 4

Dynamic AdvancedDataGridColumn in Flex 4

04 August 2010

Line Break

Author: Arjan (47 Articles) - Author Website

Arjan is a SAP Consultant specialized in ABAP and Front End development techniques like Web Dynpro, Adobe Interactive Forms, Flex and AIR. In his free time he likes to create examples for Flex-Blog and other applications using Flex, AIR and PHP. Other hobbies are movies and music. He is also the co-owner of Flex-Blog.com.


This little example shows you how you can add an AdvancedDataGrid column to your AdvancedDataGrid dynamically.

First lets create a simple layout to hold our AdvancedDataGrid in your application file:

1
2
3
4
5
6
7
8
9
<s:layout>
    <s:VerticalLayout paddingLeft="5" paddingTop="5"/>
</s:layout>
<mx:AdvancedDataGrid id="adg" dataProvider="{ac}" width="450" height="250">
    <mx:columns>
        <mx:AdvancedDataGridColumn dataField="firstname" headerText="Firstname"/>
    </mx:columns>
</mx:AdvancedDataGrid>
</s:Application>

Notice that the AdvancedDataGrid uses a dataProvider, declare that in your script section:

1
2
3
4
import mx.collections.ArrayCollection;

[Bindable]
private var ac:ArrayCollection;

Now create a method init() that’s called on the initialize event of the application that fills the ArrayCollection with some dummy data:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
private function init():void
{
    // Create some dummy data
    ac = new ArrayCollection();
    var obj:Object = new Object();
    obj.firstname = "John";
    obj.lastname = "Doe";
    ac.addItem(obj);
   
    obj = new Object();
    obj.firstname = "Jane";
    obj.lastname = "Doughnut";
    ac.addItem(obj);
}

Now lets create the stuff that’s going to help us add a column to our existing AdvancedDataGrid. First create a button
above the AdvancedDataGrid in the layout:

1
<s:Button id="addColumnBtn" click="addColumn()" label="Add Last Name Column"/>

Notice that it calls a method addColumn(), lets add that to our script section:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private function addColumn():void
{
    // Get the AdvancedDataGrid colums (array)
    var columns:Array = adg.columns;
    // Create new AdvancedDataGridColumn
    var adgColumn:AdvancedDataGridColumn = new AdvancedDataGridColumn();
    // Set the headerText and dataField properties
    adgColumn.headerText = "Lastname";
    adgColumn.dataField = "lastname";
    // Set the column width
    adgColumn.width = 225;
    // add the new column to the existing column array with the push() method
    columns.push(adgColumn);
    // set the AdvancedDataGrid columns to the array of columns
    adg.columns = columns;
    // Hide the Button
    addColumnBtn.visible = false;
}

Run the application, at first you should see one column with the button to add the second column. After you’ve clicked it, the second column appears and the button disappears.

Check out the sample application:

Here’s the complete source code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark" initialize="init()"
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
   
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
           
            [Bindable]
            private var ac:ArrayCollection;
           
            private function init():void
            {
                // Create some dummy data
                ac = new ArrayCollection();
                var obj:Object = new Object();
                obj.firstname = "John";
                obj.lastname = "Doe";
                ac.addItem(obj);
               
                obj = new Object();
                obj.firstname = "Jane";
                obj.lastname = "Doughnut";
                ac.addItem(obj);
            }
           
            private function addColumn():void
            {
                // Get the AdvancedDataGrid colums (array)
                var columns:Array = adg.columns;
                // Create new AdvancedDataGridColumn
                var adgColumn:AdvancedDataGridColumn = new AdvancedDataGridColumn();
                // Set the headerText and dataField properties
                adgColumn.headerText = "Lastname";
                adgColumn.dataField = "lastname";
                // Set the column width
                adgColumn.width = 225;
                // add the new column to the existing column array with the push() method
                columns.push(adgColumn);
                // set the AdvancedDataGrid columns to the array of columns
                adg.columns = columns;
                // Hide the Button
                addColumnBtn.visible = false;
            }
           
        ]]>
    </fx:Script>
   
    <s:layout>
        <s:VerticalLayout paddingLeft="5" paddingTop="5"/>
    </s:layout>
   
    <s:Button id="addColumnBtn" click="addColumn()" label="Add Last Name Column"/>
    <mx:AdvancedDataGrid id="adg" dataProvider="{ac}" width="450" height="250">
        <mx:columns>
            <mx:AdvancedDataGridColumn dataField="firstname" headerText="Firstname"/>
        </mx:columns>
    </mx:AdvancedDataGrid>
</s:Application>

Related posts:

  1. Flex Dynamic Chart Example
  2. Style AdvancedDataGrid depending on data example
  3. Tree in Advanced DataGrid Example
  4. Save Data to File System with AIR in Flex 4
  5. Data Dependant Tree Icon with Tree in AdvancedDataGrid with iconFunction

Written by Arjan · Filed Under Examples 

Was this post useful to you?

Please rate this post, follow us @ twitter, or link to this page from your website!

1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 4.20 out of 5)
Loading ... Loading ...

ed5a4358a384e30ccc7d03f601921a6bdelicious

Comments

One Response to “Dynamic AdvancedDataGridColumn in Flex 4”

  1. la zorrita on December 6th, 2011 5:31 pm

    exelente tutorial

Get Adobe Flash player

  • +1?

  • Support Flex Blog!

  • $ 13 raised
    • 2012/01/13 8:22 PM Russell Brown donated $ 3.00
    • 2011/10/31 4:43 PM Steve Dakin donated $ 5.00
    • 2011/05/11 3:37 PM Roelof Albers donated $ 5.00
  • Stay in touch!

  • Popular Tags

    • AdvancedDataGrid
    • AIR
    • ArrayCollection
    • baseColor
    • Button
    • CursorManager
    • DataGrid
    • Dynamic
    • Effects
    • File
    • FileStream
    • Flash Builder
    • Flash Builder 4
    • Flex 4
    • Flex Mobile
    • Framework
    • Icon
    • Image
    • itemRenderer
    • LinkBar
    • Mobile
    • PHP
    • ProgressBar
    • Repeater
    • Style
    • SWIZ
    • Timer
    • Tree
    • Twitter
    • ViewStack
  • Advertisements

  • Recent Posts

    • Spooky Frenzy – iPad Game
    • Fountain Example
    • Reading & Writing files in Adobe AIR
    • CheckBox in List using MobileIconItemRenderer for Flex Mobile
    • Data Dependent decoratorClass in MobileIconItemRenderer Example
    • Flex 4 Resize Effect Example
    • Jump to next field using the Focus Manager
    • Searching Data using a Class Example
    • Flex Mobile: Two finger tap gesture to toggle actionBar visibility in a View (AIR for Android)
    • TabbedMobileApplication Example in Flex Mobile (AIR for Android)
  • Categories

    • Examples
    • Guest Poster
    • iOS
  • Archives

    • September 2011
    • July 2011
    • May 2011
    • March 2011
    • February 2011
    • November 2010
    • October 2010
    • September 2010
    • August 2010
    • June 2010
    • May 2010
    • April 2010
    • March 2010
    • February 2010
    • January 2010
    • December 2009
    • November 2009
    • October 2009
    • March 2009
    • February 2009
  • Blogroll

    • Adobe Flex Jobs
    • NL for Business
  • Meta

    • Register
    • Log in
    • WordPress
    • XHTML

Copyright © 2010 Flex Blog · AdobeĀ® and AdobeĀ® Flex are registered trademarks of Adobe Systems.

WordPress Adobe Flex Adobe Flash Builder Adobe AIR Creative Commons License

  • Popular Posts

    • Progressbar in Datagrid Example 13 votes, average: 5.00 out of 513 votes, average: 5.00 out of 513 votes, average: 5.00 out of 513 votes, average: 5.00 out of 513 votes, average: 5.00 out of 5 (5.00 out of 5)
    • Data Dependant Tree Icon with Tree in AdvancedDataGrid with iconFunction 8 votes, average: 5.00 out of 58 votes, average: 5.00 out of 58 votes, average: 5.00 out of 58 votes, average: 5.00 out of 58 votes, average: 5.00 out of 5 (5.00 out of 5)
    • List Directory with AIR in Flex 4 7 votes, average: 5.00 out of 57 votes, average: 5.00 out of 57 votes, average: 5.00 out of 57 votes, average: 5.00 out of 57 votes, average: 5.00 out of 5 (5.00 out of 5)
    • Flex FlashVars in AS3 Example 7 votes, average: 5.00 out of 57 votes, average: 5.00 out of 57 votes, average: 5.00 out of 57 votes, average: 5.00 out of 57 votes, average: 5.00 out of 5 (5.00 out of 5)
    • Flex Dynamic Chart Example 4 votes, average: 5.00 out of 54 votes, average: 5.00 out of 54 votes, average: 5.00 out of 54 votes, average: 5.00 out of 54 votes, average: 5.00 out of 5 (5.00 out of 5)