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.
Note:This refers to a bug in the Flex 2 SDK not the Flex 3 SDK.
1// To handle visibility bug in datagrids
2private function fixVisibility(dg:DataGrid):void {
3 var visible:Boolean = false;
4
5 for(var i:Number = 0; i < dg.columns.length; i++ ){
6 var column:DataGridColumn = dg.columns[i];
7
8 visible = column.visible;
9 column.visible = true;
10 column.visible = visible;
11 }
12}
2private function fixVisibility(dg:DataGrid):void {
3 var visible:Boolean = false;
4
5 for(var i:Number = 0; i < dg.columns.length; i++ ){
6 var column:DataGridColumn = dg.columns[i];
7
8 visible = column.visible;
9 column.visible = true;
10 column.visible = visible;
11 }
12}
TweetBacks
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)'>