Sorry if I am being really dense but I take it you can't just check
the "visible" property of the column?

Ben


--- In [email protected], "parkerwhirlow" <[EMAIL PROTECTED]>
wrote:
>
> So, I'm finding that this is really a nasty bug, and I haven't found a
> good work-around.
> 
> I've tried searching through the DataGrid.columnMap to ensure there's
> renderers for my column before setting the width. This works until you
> scroll horizontally. The columns that used to be visible, but aren't
> anymore still have renderers in columnMap... and as soon as you set
> the width on a non-visible column, bam... null reference error.
> 
> I've submitted a bug report on Flex 2.0.1 through the normal feedback
> channel.
> 
> Still looking for some kind of work-around if anyone knows of one, I
> really need something!
> 
> thanks,
> PW
> 
> --- In [email protected], "parkerwhirlow" <parkerwhirlow@>
> wrote:
> >
> > Hi,
> > 
> > I have an issue where I've created a special routine to calculate the
> >  size of the columns in my DataGrid subclass. 
> > 
> > The problem I have is that I have several data grids that interact
> > with eachother, and not all columns are visible (or were ever
visible). 
> > 
> > When I programmatically set the width of the columns, if the columns
> > have not been shown (are not in the 'visibleColumns' array) I get a
> > null pointer error. See the stack trace below.
> > 
> > Since I can't get to the 'visibleColumns' collection, how can I set
> > the 'desired' widths of my columns without running into this error?
> > 
> > Also, looking at the actual code, they tried to check for some timing
> > on whether they had calc'd columns. But they don't check if the column
> > you're setting the width on is in the 'visibleColumns' list. This
> > seems like a relatively simple defect to fix... It should fall into
> > that upper if block, and set the width on the column itself, right?
> > 
> > 
> > thanks,
> > Parker Whirlow
> > __________________________
> > 
> > TypeError: Error #1010: A term is undefined and has no properties.
> > at
> >
>
mx.controls::DataGrid/http://www.adobe.com/2006/flex/mx/internal::resizeColumn()[C:\dev\flex_201_gmc\sdk\frameworks\mx\controls\DataGrid.as:2462]
> > at mx.controls.dataGridClasses::DataGridColumn/set
> >
>
width()[C:\dev\flex_201_gmc\sdk\frameworks\mx\controls\dataGridClasses\DataGridColumn.as:1048]
> > at
> >
>
company.visualizations::MyGrid/company.visualizations:MyGrid::setDefaultColumnWidths()[C:\work\Flex\src\company\visualizations\MyGrid.as:1720]
> > 
> > _________________________
> > source at DataGrid:2462
> > 
> > // there's a window of time before we calc columnsizes
> > // that someone can set width in AS
> > if (!visibleColumns || visibleColumns.length == 0)
> > {
> >   columns[col].setWidth(w);
> >   return;
> > }
> > 
> > if (w < visibleColumns[col].minWidth)   // ERROR IS HERE
> >   w = visibleColumns[col].minWidth;
> >
>


Reply via email to