something like this should work (note, this code is off the top of my head 
and not tested)
var colArray:Array = dg.columns;
// remove column 3
var newColArray = colArray.splice(3,1);
dg.columns = newColArray;

At 12:00 PM 2/4/2007, sanjaypmg wrote:

>Hi,
>
>How can I delete a colum dynamicall?
>
>Thanks
>Sanjay
>
>--- In <mailto:flexcoders%40yahoogroups.com>[email protected], 
>"Doug Lowder" <[EMAIL PROTECTED]>
>wrote:
> >
> > You can reassign the grid's columns property to accomplish this.
> > Array methods like push don't emit the events necessary for the
> > component to detect that the array has changed, thus the component
> > will not update. Try:
> >
> > public function populateData() {
> > // code snipped
> > var newCols: Array = [];
> > newCols.push(new DataGridColumn("col1"));
> > newCols.push(new DataGridColumn("col2"));
> > dataGrid_columns = dataGrid_columns.concat(newCols);
> > ...
> >
> > Reassigning dataGrid_columns to the new Array returned by the
>concat
> > () method ought to be detected by the component and cause it to
> > update.
> >
> >
> > --- In <mailto:flexcoders%40yahoogroups.com>[email protected], 
> "Paul Neyman" <paul@> wrote:
> > >
> > > Is it possible to add DataGrid columns dynamically, after
>DataGrid
> > has
> > > been initialized?
> > >
> > > I have the following scenario:
> > >
> > > User loads swf file with DataGrid component in it, and passes a
> > url as
> > > parameter. ActionScript code makes an HttpRequest call to this
>url,
> > > receives Xml data, parses it into columns and displays it in the
> > DataGrid.
> > >
> > > I do not know in advance, how many columns there will be. I
>tried
> > to
> > > make 'columns' array bindable and add instances of
>DataGridColumn
> > into
> > > it on the fly, but that has no effect on the DataGrid.
> > >
> > > While DataGrid is able to figure out itself, how many columns
>there
> > > are in a data provider, it sorts them in alphabetical order. I
> > need to
> > > set my own order.
> > >
> > > Here's a code snippet:
> > >
> > > MXML:
> > >
> > > <mx:DataGrid dataProvider="{dataGrid_data}" id = "m_dataGrid"
> > > columns="{dataGrid_columns}" initialize="makeCall
>()">
> > > </mx:DataGrid>
> > >
> > > <mx:script>
> > > [Bindable]
> > > public var dataGrid_data:ArrayCollection = new
> > ArrayCollection();
> > > [Bindable]
> > > public var dataGrid_columns:Array = new Array();
> > >
> > > public function makeCall() {
> > > // code snipped
> > > ... populateData(dataGrid_data, dataGrid_columns);
> > > // code snipped
> > > }
> > >
> > > public function populateData() {
> > > // code snipped
> > > dataGrid_columns.push(new DataGridColumn("col1"));
> > > dataGrid_columns.push(new DataGridColumn("col2"));
> > > ...
> > >
> > > // add data to provider
> > > }
> > >
> > > While provider works perfectly, columns array does not affect the
> > > DataGrid at all. Is there any workaround for this?
> > >
> > > Thanks a lot.
> > >
> >
>
>

Jeff Tapper
Founding Partner
Tapper, Nimer and Associates Inc.
[EMAIL PROTECTED]
(718) 576-1775


Reply via email to