Instead of using argument binding with a more verbose set of code in the
RemoteObject tag, I used Explicit argument passing in my pickRow() method
and used the currentTarget keyword to grab the item I clicked from.

Thanks
ben

public function pickRow(event:ListEvent):void {
                if (event.rowIndex > 0) {
                    WS.GetInstructorDetail2.send(
event.currentTarget.selectedItem.InstructorId);
                    WS.ListContractorRates.send(
event.currentTarget.selectedItem.InstructorId);
                    currentState='detailTabs';
                }
             }




On 9/15/07, dorkbrain2000 <[EMAIL PROTECTED]> wrote:
>
>   I have a tab navigator that has datagrids on each respective tab. The
> datagrids are populated with a RemoteObject call and all works fine.
> When the user clicks on a row (itemClick), the state changes and they
> are brought to the details screen (for editing the content in a form).
> The content grab is another RemoteObject call repective to the row
> they clicked in the base state. So, the problem is, how do I make my
> pickRow() function generic? It gathers the event goodies on the
> rowClick and passes them to the RO call and passes the argument. But,
> when I place the argument in the RemoteObject tag call, I need to
> specifically reference the datagrid id. So this only works for one
> data grid. How do I make it work for all the datagrids. I have wittled
> the code down and placed it below.
>
> TIA - Ben
>
> <mx:Script>
> <![CDATA[
> import mx.events.ListEvent;
> import mx.controls.Alert;
> import mx.rpc.events.FaultEvent;
> import mx.rpc.events.ResultEvent;
> import mx.collections.ArrayCollection;
>
>
> [Bindable]
> private var myData:ArrayCollection;
> [Bindable]
> private var myRate:ArrayCollection;
> [Bindable]
> private var selected1:Number;
>
> private function queryHandler(event:ResultEvent):void
> {
> myData = event.result as ArrayCollection;
> }
>
> private function queryRateHandler(event:ResultEvent):void
> {
> myRate = event.result as ArrayCollection;
> }
>
> private function faultHandler(event:FaultEvent):void
> {
> Alert.show(event.fault.faultString, event.fault.faultCode);
> }
>
> public function pickRow(event:ListEvent):void {
> if (event.rowIndex > 0) {
> WS.GetInstructorDetail2.send();
> WS.ListContractorRates.send();
> currentState='detailTabs';
> }
> }
>
> ]]>
> </mx:Script>
>
> <mx:RemoteObject id="WS"
> destination="ColdFusion"
> source="Compass.cfc.lsd"
> fault="faultHandler(event)">
> <mx:method name="GetInstructorDetail2" result="queryHandler(event)">
> <mx:arguments>
> <InstructorId>{grid0.selectedItem.InstructorId}</InstructorId>
> </mx:arguments>
> </mx:method>
> <mx:method name="ListContractorRates" result="queryRateHandler(event)">
> <mx:arguments>
> <InstructorId>{grid0.selectedItem.InstructorId}</InstructorId>
> </mx:arguments>
> </mx:method>
> </mx:RemoteObject>
>
> <mx:DataGrid id="grid0"
> dataProvider="{InstructorWS.ListActiveInstructors.lastResult}"
> itemClick="pickRow(event)"
> left="10" right="10" bottom="10" top="10"
> editable="false"
> enabled="true"
> sortableColumns="true"
> draggableColumns="false">
> <mx:columns>
> <mx:DataGridColumn headerText="First Name" dataField="FirstName"
> width="80"/>
> <mx:DataGridColumn headerText="Last Name" dataField="LastName"
> width="80"/>
> <mx:DataGridColumn headerText="Email" dataField="Email"/>
> <mx:DataGridColumn headerText="Mobile" dataField="Mobile"
> width="110"/>
> <mx:DataGridColumn headerText="Phone" dataField="Phone" width="110"/>
> <mx:DataGridColumn headerText="City" dataField="City" width="120"/>
> <mx:DataGridColumn headerText="State" dataField="State" width="40"/>
> </mx:columns>
> </mx:DataGrid>
> </mx:Canvas>
> <mx:Canvas label="Inactive Instructors" width="100%" height="100%"
> id="canvas2">
> <mx:DataGrid id="grid1"
> dataProvider="{InstructorWS.ListInactiveInstructors.lastResult}"
> itemClick="pickRow(event)"
> left="10" right="10" bottom="10" top="10"
> editable="false"
> enabled="true"
> sortableColumns="true">
> <mx:columns>
> <mx:DataGridColumn headerText="First Name" dataField="FirstName"
> width="80"/>
> <mx:DataGridColumn headerText="Last Name" dataField="LastName"
> width="80"/>
> <mx:DataGridColumn headerText="Email" dataField="Email"/>
> <mx:DataGridColumn headerText="Mobile" dataField="Mobile"
> width="110"/>
> <mx:DataGridColumn headerText="Phone" dataField="Phone" width="110"/>
> <mx:DataGridColumn headerText="City" dataField="City" width="120"/>
> <mx:DataGridColumn headerText="State" dataField="State" width="40"/>
> </mx:columns>
> </mx:DataGrid>
>
>  
>



-- 
Benjamin Wilson
Logware.us
Logware is an online time tracking service for programmers, consultants,
designers or anyone who tracks time. Sign up for a free account today.

Reply via email to