2009-12-17 3 views
0

Я работал с перетаскиванием элементов внутри горизонтального списка в Flex. Он отлично работает, но теперь мне нужно сохранить новый заказ через AMF в моей базе данных. Я почти уверен, что это довольно легко, но я еще не понял.Flex - Сохранение нового порядка элементов HorizontalList через AMF

Есть ли способ циклического (после переупорядочения) всех элементов, чтобы я мог получить для каждого элемента свой (новый) индекс?

И я заметил, что даже если я изменить порядок, порядок в DataProvider всегда то же самое ...

Это мой список:

<mx:HorizontalList id="horizontalList" 
    allowMultipleSelection="true" 
    allowDragSelection="true" 
    dragEnabled="true" 
    dropEnabled="true" 
    dragMoveEnabled="true" 
    labelField="lbl" 
    iconField="src" 
    itemRenderer="CustomItemRenderer_gallery" 
    columnCount="5" 
    columnWidth="125" 
    rowHeight="125" 
    horizontalScrollPolicy="on" 
    doubleClickEnabled="true" 
    click="{click(event);}" 
    dragDrop="handleBtnReorder(event)" 
    doubleClick="doubleClick(event);" /> 

ответ

0

Я бы просто перебрать списки dataProvider, что вы перетаскивали элементы на ... при циклическом хранении нового порядка (i) в переменной ArrayCollection, заполняющей dataProvider ... затем преобразовываем ArrayCollection в массив, который будет передаваться на серверную сторону для обработки.

что-то вроде:

for(var i:int = 0; i < yourList.dataprovider.length; i++) 
{ 
    yourList.dataProvider.getItemAt(i).order = i; 
} 
// then convert the ArrayCollection to an Array and pass to your RemoteObject. 
+0

таскаю элементы в одном списке, и порядок DataProvider не меняется ... Я думал, что там был какой-то собственный метод, даже что-то наследуется из списка класс. –

+0

моя ошибка, я использовал неправильное событие, dragDrop .. на dragComplete, dataProvider изменился, и я могу сделать все необходимые приготовления :) спасибо! –