2017-01-13 4 views
0

データグリッド内の特定の項目のドラッグアンドドロップを制限します。すべての項目がデータグリッドに追加されるわけではありません。 たとえば、アイテムXをクリックしてデータグリッドにドラッグすると、そのアイテムが追加されます。また、別のアイテムYを同じデータグリッドにドラッグしてドラッグすると、そのアイテムは追加されません。データグリッドの一部の項目のドラッグ&ドロップを制限しますか? - Adob​​e 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に追加されます。また、契約Aはコストグリッドに追加されません。

ありがとうございます!

答えて

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

関連する問題