簡體   English   中英

限制數據網格中某些項目的拖放? -Adobe Flex

[英]Restrict drag and drop of some items in a datagrid? - Adobe Flex

我想限制數據網格中特定項目的拖放。 並非所有項目都會添加到數據網格中。 例如,當我單擊並將項目X拖動到數據網格時,它即被添加。 而且,如果我單擊另一項Y並將其拖到相同的數據網格中,則不會添加該項。

<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的Electricity,Phone和Water項目將添加到datagrid costgrid中。 並且項目合同A將不會添加到costgrid中。

任何想法?

提前致謝!

你可以做這樣的事情

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);
        }

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM