Flex Datagrid Visibility Bug
Run into a nasty little bug with Flex datagrids the other, under some situations Datagrid columns with their visibility set to false will be displayed!
Here's a workaround.
The issue occurred when setting an ArrayCollection that was bound to a datagrid the non visible columns reappeared.
The fix is to set the visibility to true and then back to false on each column. Not the most elegant solution but it works.
// To handle visibility bug in datagrids
private function fixVisibility(dg:DataGrid):void {
var visible:Boolean = false;
for(var i:Number = 0; i < dg.columns.length; i++ ){
var column:DataGridColumn = dg.columns[i];
visible = column.visible;
column.visible = true;
column.visible = visible;
}
}
private function fixVisibility(dg:DataGrid):void {
var visible:Boolean = false;
for(var i:Number = 0; i < dg.columns.length; i++ ){
var column:DataGridColumn = dg.columns[i];
visible = column.visible;
column.visible = true;
column.visible = visible;
}
}
Thanks a ton!
with columns array. I figure overriding this method and reseting
visibleColumns will solve the problem.
eg.
override protected function commitProperties():void
{
var visibleColumnstemp:Array = super.mx_internal::visibleColumns ; //workarround t
super.commitProperties();
super.mx_internal::visibleColumns = visibleColumnstemp;
}
<mx:DataGrid id='dg' updateComplete='fixVisibility(dg)' dataChange='fixVisibility(dg)' change='fixVisibility(dg)'>