this the complete sample code for the work i want to do
i have data as string from that i have to identify column and then
display corresponding data  in a grid

<?xml version="1.0"?>
<!-- dpcontrols/DataGridPassData.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
   initialize="initData()">
   <mx:Script>
   <![CDATA[
      import mx.collections.*;
      import mx.controls.Alert;
      import mx.collections.ArrayCollection;
          import mx.controls.DataGrid;
          import mx.controls.dataGridClasses.DataGridColumn;

//data to be display in grid
 private var str:String="{'Artist Name':'Pavement', 'Album':'Slanted
and Enchanted', 'Price':'11.99'}*{'Artist Name':'Pavement',
'Album':'Brighten the Corners', 'Price':'11.99'}";

      //   Alert.show(str,"string");
        private var DGArray:Array =str.split("*");
     //   Alert.show(DGArray[0].toString(),"array");
      [Bindable]
      public var initDG:ArrayCollection;
      //Initialize initDG ArrayCollection variable from the Array.
      //You can use this technique to convert an HTTPService,
      //WebService, or RemoteObject result to ArrayCollection.
      public function initData():void {
         initDG=new ArrayCollection(DGArray);
         var dcolumn:DataGridColumn=new DataGridColumn();
         Alert.show(DGArray[0].toString(),"dg");
         var row:Array=DGArray[0].toString().split(",");
         Alert.show(row.length.toString()+row[0].toString(),"row");
         var colName:String;
         var gridcolumns:Array=new Array();
         for(var i:int=0;i<row.length;i++)
                                {
                                        
colName=row[i].toString().substr(1,row[i].toString().indexOf
(":")-1);
                                        
colName=colName.substring(1,colName.length-1);
                                        Alert.show(colName,"col name");
                                        dcolumn=new DataGridColumn();
                                        dcolumn.dataField=colName;
                        //              
Alert.show(dcolumn.dataField.toString(),"field");
                                        dcolumn.resizable=true;
                                        dcolumn.minWidth=200;
                                        gridcolumns.push(dcolumn);

                                }
                                myGrid.columns=gridcolumns;
                                myGrid.dataProvider=initDG;
      }
   ]]>
   </mx:Script>

   <mx:DataGrid id="myGrid" width="350" height="200">

   </mx:DataGrid>
</mx:Application>

for this i am trying to parse the string to idengtify column Now plz
help me to do this
thank

Regards
Akhil Agrawal

On Mar 22, 6:06 pm, Ravi Mishra <[email protected]> wrote:
> send me the complete file....may be i can do something with that.
>
> -Ravi
>
> On Mar 22, 5:38 pm, Akhil Agrawal <[email protected]> wrote:
>
> > @ravi
> > it is not working . columns is an array that provide field name in
> > arraycollection for providing data to grid
>
> > On Mar 21, 11:17 am, Ravi Mishra <[email protected]> wrote:
>
> > > Dont declare the dcolumn as a global variable.....declare it locally
> > > in the function where you are running the for loop and then push this
> > > dcolumn to gridcolumns array and then finally assign this array to the
> > > columns property of datagrid.
>
> > > BTW what is columns in the for loop?
>
> > > -Ravi
> > > On Mar 20, 7:14 pm, Akhil Agrawal <[email protected]> wrote:
>
> > > > [Bindable]
> > > >                 private var queryResult:ArrayCollection=new 
> > > > ArrayCollection();
> > > >                 [Bindable]
> > > >                 private var gridcolumns:Array=new Array();
> > > >                 private var grid:DataGrid=new DataGrid();
> > > >                 [Bindable]
> > > >                 private var dcolumn:DataGridColumn=new DataGridColumn();
>
> > > > for(var i:int=0;i<columns.length;i++)
> > > >                                 {
>
> > > >                                 //      Alert.show(colName,"col name");
> > > >                                         dcolumn=new 
> > > > DataGridColumn(colName.toUpperCase()); //colname is
> > > > a string which is same as field in array collection
> > > >                                         dcolumn.dataField=colName;
> > > >                                         dcolumn.resizable=true;
> > > >                                         dcolumn.minWidth=200;
> > > >                                         gridcolumns.push(dcolumn);
>
> > > >                                 }
> > > >                                 this.grid.columns=gridcolumns;
> > > >                         var temp:ArrayCollection=new 
> > > > ArrayCollection(rows); // rows is an
> > > > array of rows as shown in previous post
> > > >          queryResult=temp;
> > > >                 this.grid.dataProvider=queryResult;
>
> > > > this is the code how i m  doing now plz help me in this regard
>
> > > > On Mar 20, 6:23 pm, Ravi Mishra <[email protected]> wrote:
>
> > > > > Can you pls send your complete code.....as I am not able to understand
> > > > > what is gridColumns?
>
> > > > > GridColumns should be an Array and you should loop through each
> > > > > property of a row like this
>
> > > > > for each(var str:string in rowObject){
> > > > > // your code of creating and pushing the columns in GridColumns array
>
> > > > > }
>
> > > > > then assign GridColumns to grid.columns
>
> > > > > HTH,
>
> > > > > -Ravi
>
> > > > > On Mar 20, 5:42 pm, Akhil Agrawal <[email protected]> wrote:
>
> > > > > > Hi all,
> > > > > > I have many rows in a arraycollection in tha form
> > > > > > {'Category ID':'null', 'Software Feature ID':'null', 'Event 
> > > > > > Date':'Tue
> > > > > > Mar 17 11:40:13 IST 2009', 'Event Type ID':'2102006'}
>
> > > > > > where category id and other are columns and creating datagridcolumn
> > > > > > like this
>
> > > > > > dcolumn=new DataGridColumn(colName.toUpperCase());
> > > > > > dcolumn.dataField=colName;
>
> > > > > > grid.columns=this.gridcolumns; // grid is an object of datagrid type
>
> > > > > > var temp:ArrayCollection=new ArrayCollection(rows);
>
> > > > > > this.grid.dataProvider=temp;
>
> > > > > > it is not displaying the data properply and displaying complete row 
> > > > > > as
> > > > > > written above in each column
> > > > > > how to fix it
>
> > > > > > thank you
>
> > > > > > regards
>
> > > > akhil agrawal
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Flex 
India Community" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/flex_india?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to