Flex DataGrid запрос - PullRequest
       0

Flex DataGrid запрос

0 голосов
/ 16 ноября 2010

Мне нужно написать следующее событие. У меня есть таблица данных Flex. Когда я щелкаю строку, мне нужно извлечь определенный столбец и вызвать удаленный метод EJB. Мост Flex EJB отлично работает с BlazeD. Вот мои коды

<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. Когда я выбираю конкретную строку, я нажимаю метод EJB, который возвращает весь объект Employee. Я вызываю удаленный метод следующим образом

<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 в качестве изображения для изображения. Я не уверен, ясно ли я, но уточню, если у вас возникнут сомнения.

1 Ответ

1 голос
/ 16 ноября 2010

Вместо click попробуйте прослушать событие itemClick в вашей сетке данных, передав объект события в качестве аргумента вашего обработчика:

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

Объект события - как экземпляр mx.events.ListEvent - имеет свойство rowIndex, которое определяет

Начинающийся с нуля индекс предмета связанные с событием.

Имея это, вы можете получить элемент от вашего поставщика данных:

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

В качестве альтернативы и гораздо проще, вы можете просто получить выбранный элемент непосредственно из сетки данных

private function empHandler():void{
    srv.getEmployeeDetails(employees.selectedItem.id);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...