拖动;在Flex中从2个源下降到1个目标,是否可能?

时间:2012-02-02 19:45:31

标签: flex flex4 flex3 flash-builder

我的问题很简单。假设我有2 List Controls。 1个用户和1个门票。 (2个来源)

我有DataGrid(目标)。可以在前面提到的2个列表中选择1个用户和1个票证并拖放。将它们同时放到DataGrid

我知道这并不简单,因为它们会自动混合..如果有可能......我将不得不使用DragEnter的{​​{1}}事件或其他东西来混合它们并创建我的dataProvider。但我不知道你怎么能拖拽从不同来源同时丢弃2个项目。有一个来源是可能的..但不知道如何使用2个来源。

任何帮助都会非常感激。

提前致谢

1 个答案:

答案 0 :(得分:1)

是的,我认为这仍然是可能的。

您的选择是:

(单击)选择用户上的项目,然后单击(选择)故障单上的项目。

从您开始拖动的任何列表中,您仍然可以使用dragEvent中的项目和列表中的选定项目填充数据网格。

// 
boolUsers:Boolean;

On your datagrid:
private function dataGrid_dragDrop(evt:DragEvent) :void
{
  // This will get the items from the list where you initiated the drag.
  var objDrag:Object;
  objDrag = evt.dragSource.dataForFormat("items");


  // Depending on where the drag was initiated, get the items from the list.
  var objList:Object;
  if(boolUsers)
  {
    objList = listTickets.selectedItem;
  }
  else
  {
    objList = listUsers.selectedItem;
  }

  boolUsers = false;
}

您需要为列表

定义一个dragstart事件
private function listUsers_dragStart(evt:DragEvent) :void
{
  boolUsers = true;
}