【问题标题】:Drag&Drop in Advanced DataGrid高级 DataGrid 中的拖放
【发布时间】:2010-01-18 14:52:07
【问题描述】:

我有一个高级 DataGrid 用于显示数据库中的行数,并且一行严格不应允许拖动选项。有可能吗?请分享一个示例。

【问题讨论】:

    标签: apache-flex flex3


    【解决方案1】:

    这当然是可能的。将一个 dragEnter 处理程序添加到您的数据网格:

    <mx:AdvancedDataGrid id="adg" dragEnabled="true" dragEnter="adg_dragEnterHandler(event)" />
    

    使用以下代码:

    受保护的 var _draggedItem:Object;

                protected function adg_dragEnterHandler(event:DragEvent):void
                {
                    event.preventDefault();
                    event.currentTarget.hideDropFeedback(event);
    
                    var items:Array = ds.dataForFormat("items") as Array;
                    if (items != null && items.length > 0 && (items[0] is CategoryVO)) {
                        _draggedItem = Object(items[0]);
                    }
    
                    // Prevent item from being dragged
                    if (_draggedItem.property == true) {
                        DragManager.showFeedback(DragManager.NONE);
                        return;
                    }
    
                    DragManager.acceptDragDrop(UIComponent(event.currentTarget));
    
                }
    

    _draggedItem.property == true 是检查,如果一个项目不能被拖动。

    【讨论】:

    • @Thomos:上面的例子显示了将高级数据网格中的任何行从一个地方拖到另一个地方是不允许的但我只需要一个特定的行不允许拖放。假设我有一个具有 10 行的高级数据网格。我需要允许所有行拖放,除了一个。
    • 您是否有机会使用“_draggedItem.property”来满足您的需求?这只是一个例子。
    猜你喜欢
    • 1970-01-01
    • 2010-12-26
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    相关资源
    最近更新 更多