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
> >
>