2010-11-16 87 views
0

我需要編寫以下事件。我有一個Flex數據網格。當我單擊一行時,我應該讀取一個特定列並調用一個遠程EJB方法.Flex EJB網橋與BlazeDs.Here完美協作是我的代碼Flex DataGrid查詢

<mx:DataGrid id="employees" x="100" y="50" dataProvider="{empList}" height="150" click='empHandler();'> 
<mx:columns> 
    <mx:DataGridColumn headerText="empid" dataField="empid" /> 
</mx:columns> 
</mx:DataGrid> 

我的員工結構empid:數字,名字,姓氏,電子郵件,圖像,密碼都是字符串。 表包含empids.When名單我選擇的特定行我打的EJB方法將返回整個員工object.I我打電話的遠程方法如下

<mx:RemoteObject id="srv" showBusyCursor="true" destination="quizAppEJB" 
     fault="mx.controls.Alert.show(event.fault.faultString, 'Error')"> 
    <mx:method name="checkLogin" result="empList=event.result" 
     fault="mx.controls.Alert.show(event.fault.faultString)"> 
    <mx:arguments> 
    <username>username.text</username> 
    <password>password.text</password> 
    </mx:arguments> 
    </mx:method> 

這是我empHandler方法。

private function empHandler():void 
    { 
    Alert.show('hi'); 
    srv.getEmployeeDetails(empid); 

    } 

我不知道如何設置EMPID存在於表

username.text password.text

employees.selectedItem.empid

我想將empDetailList.employee.image的值設置爲image的圖像。我不確定我是否清楚,但會澄清如果您有任何疑問。

回答

1

而不是click嘗試聽你的數據網格itemClick事件,通過事件對象作爲處理程序的參數:

<mx:DataGrid id="employees" x="100" y="50" dataProvider="{empList}" 
    height="150" itemClick="empHandler(event)"> 

Event對象 - 爲mx.events.ListEvent實例 - 具有rowIndex屬性定義

與事件關聯的項目 的從零開始的索引。

有,你可以從你的數據提供者獲取資料:

private function empHandler(event:ListEvent):void{ 
    srv.getEmployeeDetails(empList.getItemAt(event.rowIndex).id); 
} 

或者,你可以直接獲得直接從DataGrid中選定的項目更容易

private function empHandler():void{ 
    srv.getEmployeeDetails(employees.selectedItem.id); 
}