Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   List и порядок записей при перетаскивании (http://www.flasher.ru/forum/showthread.php?t=148578)

Freedom77 06.01.2011 02:42

List и порядок записей при перетаскивании
 
Как получить какой ItemIndex получила строка, после перетаскивании в List?

alatar 06.01.2011 16:24

Подписаться у dataProvider на событие CollectionEvent.COLLECTION_CHANGE, проверить, что event.kind == CollectionEventKind.ADD и посмотреть event.location.

Freedom77 08.01.2011 16:04

alatar, спасибо за помощь! Только вот вопрос: как подписаться на collectionChange, если в качестве dataProvider="{myQuestResult.lastResult}"
<s:CallResponder id="myQuestResult"/>

alatar 08.01.2011 16:23

Вам надо подписаться на событие после того как результат запроса будет добавлен в качестве dataProvider.

Freedom77 08.01.2011 16:55

alatar, че то я не совсем понял. Опишу ситуацию в целом, тем более что она немного изменилась. Есть DataGrid (пришлось использовать вместо List). Данные получаю с помощью <s:CallResponder id="myQuestResult"/> (берутся из БД посредством amf) и устанавливается в качестве dataProvider="{myQuestResult.lastResult}" компоненты DataGrid. Задача: (немного упростилась) В датагриде можно перемещать записи между собой. Нужно получить и сохранить порядок записей. Для этого нужно получить данные, на какую позицию была перемещена запись. По твоей наводке это высчитывает event.location. Вопрос - как его получить.
Сильно не бей, я не так давно с flex'ом.

alatar 08.01.2011 19:21

Ваша ошибка в том, что вы пытаетесь использовать байндинг в ситуациях, когда он только мешает, вместо того, что бы помогать. В результате вы не имеете прямого доступа к данным.
Подпишитесь у CallResponder на событие ResultEvent.RESULT, в обработчике события вы получите ваши данные как event.result. Скормите данные вашему DataGrid. После этого подпишитесь у dataProvider на событие CollectionEvent.COLLECTION_CHANGE (Если конечно ваши данные изначально не реализуют интерфейс IList или ICollectionView, тогда можете подписаться на прямую). По событию DRAG_DROP, те элементы, которые были перемещены сначала будут удалены из dataProvider, а потом вставлены не новую позицию.


Часовой пояс GMT +4, время: 23:51.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.