Thanks for the replies - well, I tried that suggestion ( 
dg.selectedItem = xmlData[0] )and the XML is null at this point.  

Yes, the XML data is not available yet when the App's creation 
complete is called.  I should have mentioned as well that this 
DataGrid and form are in a component.  The component's DataGrid data 
source is set from the mxml declaration in the application.

The XML data is retrieved from an HTTPSService object.  So in the 
main App, once this XML data is retrieved, I now try to set the 
selectedItem as follows in the result handler:

private function onHandleGetData(event:ResultEvent):void{
     
     tableData = event.result as XML;
     dg.dgSelector.selectedItem = tableData[0]; 

}

When I step through the code, I can see that the result contains the 
desired XML.  But when I step into the code on that last line - where 
I try to assign a value to dg.selectedItem, Flex ends up in the 
ListBase.as   clearSelected() function.

In this function these 2 lines get called:  
 
        _selectedIndex = -1;
        _selectedItem = null;

which cancel out the assignment!!


Has anybody else run into this situation?

I just want to programmatically select that first row and have the 
corresponding form populate with that row's values.

Given that the Grid and form are in a component, this might 
complicate things but it seems to me that this would be a common 
scenario - having a master/detail Grid/Form in a component.

Thanks





--- In [email protected], "letterpigeon" <[EMAIL PROTECTED]> wrote:
>
> I think this might be a race condition problem.  Your data might not
> have been loaded when the creationComplete event is fired (it is 
fired
> after all the UI components are created, but any service call you 
made
> to load up the data might not have returned yet).
> 
> Ban
> 
> --- In [email protected], "guitarguy555" <djohnson29@> 
wrote:
> >
> > In my application, I have a datagrid that is bound to XML data.  
The 
> > datagrid has a corresponding form that contains the details.  
When 
> > the user clicks on a row in the datagrid the form populates with 
the 
> > values from the DataGrid's selectedItem.
> > 
> > I want to programatically select the first row in my DataGrid 
when 
> > the application loads.  
> > 
> > In order to do this, I have to call validateNow() and 
scrollToIndex()
> > 
> > eg.
> > 
> > dg.selectedIndex = 0;
> > dg.validateNow();  
> > dg.scrollToIndex(0);  
> > 
> > I put this code in the Applications creationComplete handler.
> > 
> > This all works great - the first row is highlighted and selected 
and 
> > the selectedIndex is 0.  The problem is that I can't access the 
data 
> > to populate the details form.  When I try to retrieve the 
> > dg.SelectedItem property - it is null.
> > 
> > How does one programatically select the first row in the grid on 
load 
> > AND access the row data?
> > 
> > thanks
> >
>


Reply via email to