Take 3... after further review, to simplify things I have bound 2 separate ArrayCollection to separate DataGrids they both share one common field - Ticker.. I'd like to select the corresponding row programmatically in the second datagrid which contains the value for 'Ticker' that is selected in the first datagrid.
So far this does not work... <mx:DataGrid id=dg1 click='onClick()" /> <mx:DataGrid id=dg2 /> private function onClick(): void { var curTick:String = dg1.selectedItem.Ticker; dg2.selectedItem.Ticker = curTick; dg2.selectedIndex= dg2.selectedItem.Ticker.rowindex; } Any suggestions?... Anyone?? I imagine the ListCollection will work but not sure the syntax. --- In flexcoders@yahoogroups.com, "Craig" <cra...@...> wrote: > > Actually after thinking about it, I should just add the 2nd Webservice > result to the first ArrayCollection data model. They both share the > same field 'Ticker' but have different fields thereafter. The first > result is Array_OrdExt and the second is Arrray_Exits. > The Array Build routines for both are below. > > [Bindable] public var Array_Exits:ArrayCollection; > public function Exits_Result(e:ResultEvent):void { > Array_Exits = e.result as ArrayCollection; > for (var i:int=0;i<Array_Exits.length;i++) > { > var Current_exit:Exits = new Exits(); > Current_exit = new > Exits(Array_Exits.getItemAt(i)); > Array_Exits.setItemAt(Current_exit, i); > } > } > > [Bindable] public var Array_OrdExt:ArrayCollection; > private function OrdExt_result(e:ResultEvent):void { > Array_OrdExt = e.result as ArrayCollection; > for (var i:int=0;i<Array_OrdExt.length;i++) > { > var Current_ordext:OrdExt = new OrdExt(); > Current_ordext = new > OrdExt(Array_OrdExt.getItemAt(i)); > Array_OrdExt.setItemAt(Current_ordext, i); > } > } > > These build from two WebsServices results WSDL format (XML). For the > second one, which is Array_Exits... can I just add it to the first one > with the same result event? I would like to use the first field of each > collection 'Ticker' as the WHERE Ticker=Ticker then do the Get and > Set... > > The Data Model for each Array is OrdExt.as and Exits.as is structured as > follows: > > package DTO.OrdEnt > { > [Bindable] > public class OrdEnt > { > public var Ticker:String = ""; > public var Company:String = "";..........continues > > public function OrdEnt(obj:Object=null){ > if (obj!=null){ > this.Ticker=obj.Ticker; > this.Company=obj.Company;..............continues > > > > > > > > --- In flexcoders@yahoogroups.com, "Craig" craigj@ wrote: > > > > I need to create a DataModel.as that will synchronize two > > arraycollections and allow me to update a Form based on the contents > of > > the 2nd arraycollection.index.item(s) when the first arraycollection > > selecteditem is clicked as the dataprovider for a datagrid. > > > > > > The 2 arraycollections are populated via webservices from sql > database, > > (which I can not InnerJoin from 4 different tables due to > > performance)... so I end with two separate arraycollections: > > > > One populates a Datagrid, the other is just resident in an > > ArrayCollection: Here is some of the sample code: > > > > <mx:columns> > > <mx:DataGridColumn dataField="Ticker" > > headerText="Ticker"/> > > <positions:KindColumn id="Kind" > > headerText="Kind" > > dataField="Kind" > > itemRenderer="com.steury.baseClasses.CellFieldTrd"/> > > <mx:DataGridColumn id="EnterPrice" > > labelFunction="{myPrice}" > > dataField="EnterPrice" > > headerText="EnterPrice"/> > > <mx:DataGridColumn id="ClosePrice" > > labelFunction="{myClosePr}" > > dataField="Close" > > headerText="Price"/> > > <positions:ProfitColumn id="Profit" > > headerText="Profit" > > dataField="Profit" > > labelFunction="{perCent}" > > itemRenderer="com.steury.baseClasses.CellFieldInt"/> > > </mx:columns> > > > > ______________________________________________ > > > > <positions:DgOrdExt id="dgOrdExt" > > width="100%" height="50%" > > textAlign="center" > > dataProvider="{Array_OrdExt}" > > itemClick="onTick4()" > > > > > One Array is Array_OrdEx and the other Array is Array_Exits. > > > > When I select an item on the dgOrdExt DataGrid, I simply want to > > populate the text values of a Form with the appropriate Items in the > > second datagrid... Here is the trick... they both share the same > > 'Ticker' value, but just different other variables... so it's not too > > difficult, it's just trickier than my novice programming skills can > > handle - easily. > > > > [Bindable] public var ExtTicker:String; > > > > So the OnTick4() event will contain the following code: > > > > ExtTicker=dgOrdExt.selectedItem.Ticker; > > > > Then I need to somehow update the form as follows: > > formOrdExt.tiHigh.text=dgOrdExt.selectedItem.High; > > formOrdExt.tiLow.text=dgOrdExt.selectedItem.Low > > > > > formOrdExt.tiStrategy.text=Array_Exists.getItemAt({ExtTicker}).Strategy; > > > > Or I need to build an DataModel.as class to sychronize the two > > arraycollections... I have thought about using source.concat but that > > will append the two collections and I will have 2 of every Ticker, > where > > I only want 1 of every Ticker with the appropriate value (Open, High, > > Low, SellPrice, Profit, BudyDate, Exit, Strategy, etc). > > > > Can someone give me a hand? > > CS > > >