Oh yeah. I just remembered my real problem, which looks like a bug in 
flex.

ListEvent.columnIndex ignores invisible columns. So if column 0 is 
invisible, then column 1 will have an index of "0." However, 
AdvancedDataGrid.columns knows about invisible columns. Is there any 
way to fix this, other than looping through and figuring out which 
columns are visible?


This code always shows the wrong result on a click:



<mx:AdvancedDataGrid id="grid" itemClick="OnClick(event)">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.ListEvent;

[Bindable] public var gridData:ArrayCollection = new ArrayCollection
([{field0:"0", field1:"1"}]);

private function OnClick(event:ListEvent):void
{
Alert.show(grid.columns[event.columnIndex].dataField);
}
]]>
</mx:Script>

<mx:dataProvider>
<mx:HierarchicalData source="{gridData}"/>
</mx:dataProvider>

<mx:columns>
<mx:AdvancedDataGridColumn width="20" visible="false" 
dataField="field0"/>
<mx:AdvancedDataGridColumn dataField="field1" width="100"/>
</mx:columns>
</mx:AdvancedDataGrid>

Reply via email to