2017-01-13 16 views
0

Я хочу ограничить перетаскивание определенного элемента в datagrid. Не все элементы будут добавлены в datagrid. Например, когда я нажимаю и перетаскиваю элемент X в datagrid, он добавляется. И если я нажму и перетащите другой элемент, Y, в тот же файл данных, он не будет добавлен.Ограничить перетаскивание некоторых элементов в datagrid? - Adobe Flex

<s:Label text="Source"/> 
<mx:DataGrid id="srcgrid" 
    allowMultipleSelection="true" 
    dragEnabled="true" 
    dropEnabled="true" 
    dragDrop="dragDropHandlerSrc(event);" 
      dragMoveEnabled="true"> 
      <mx:columns> 
       <mx:DataGridColumn dataField="Expense"/> 
       <mx:DataGridColumn dataField="Value"/> 
      </mx:columns>  
     </mx:DataGrid> 

<s:Label text="Costs"/> 
<mx:DataGrid id="costgrid" 
    allowMultipleSelection="true" 
    dragEnabled="true" 
    dropEnabled="true" 
    dragMoveEnabled="true" 
    dragDrop="dragDropHandlerCost(event);"> 
    <mx:columns> 
     <mx:DataGridColumn dataField="Espense"/> 
     <mx:DataGridColumn dataField="Value"/> 
    </mx:columns>  
</mx:DataGrid> 

<fx:Script> 
    private function initApp():void { 
     srcgrid.dataProvider = new ArrayCollection([ 
     {Expense:'Electricity', Value:100}, 
     {Expense:'Phone', Value:200}, 
     {Expense:'Water', Value:300}, 
     {Expense:'Contract A', Value:500}, 
     {Expense:'Contract B', Value:600} 
     ]); 

     costgrid.dataProvider = new ArrayCollection([]); 
    } 
</fx:Script> 

В этом примере, элементы электричество, телефон и вода из srcgrid будут добавлены в DataGrid costgrid. И пункт Контракт А не будет добавлен в costgrid.

Любая идея?

Заранее благодарен!

ответ

1

Вы можете сделать что-то вроде этого

private function dragDropHandlerCost(event:DragEvent):void { 

     var dragObj:Vector.<Object> = 
       event.dragSource.dataForFormat("itemsByIndex") as Vector.<Object>; 
     if (dragObj[0].Expense == "Contract A"){ 
      event.preventDefault(); 
      DragManager.showFeedback(DragManager.NONE); 
     } 

    } 
+0

Спасибо за ответ! Код работает отлично !!! Огромное спасибо!!! – Marcel

 Смежные вопросы

  • Нет связанных вопросов^_^