首页 > 设计 > WEB开发 > 正文

6.8.启动DataGrid拖拽功能

2023-08-02 23:09:39
字体:
来源:转载
供稿:网友
6.8.1. 问题
我想启动DataGrid 数据项拖动功能,以便用户能拖动它们到其他表格上。
6.8.2. 解决办法
设置源DataGrid 的dragEnabled 为true,和目标DataGrid 的dropEnabled 属性为true。
6.8.3. 讨论
要启动基于列表的控件比如DataGrid 的拖拽功能,最简单的方法就是设置相应的属性为true,因为Flex 框架将负责所有相关的底层工作。例如,下面的例子设置AdvancedDataGrid的dragEnabled 属性为true,意思就是支持该控件的数据项能被拖动到控件之外的地方。而DataGrid 的dropEnabled 属性设置为true,表示该控件可接受被拖进来的数据项。另外一个属性即dragMoveEnabled 将影响拖动效果。

对于非列表型控件或需自定义拖拽操作的,Flex 3 框架为此提供了DragManager,它将在第十章, "拖拽操作" 中介绍。
+展开
-XML
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="horizontalcreationComplete="initApp()">

<mx:HTTPService id="srvurl="assets/homesforsale.xml"
resultFormat="objectresult="onResult(event)"/>

<mx:AdvancedDataGrid id="gridwidth="100%height="100%"
sortableColumns="false"
dragEnabled="true"
dataProvider="{homesForSale}">

<mx:columns>
<mx:AdvancedDataGridColumn headerText="Total No."
dataField="total"/>

<mx:AdvancedDataGridColumn headerText="City"
sortable="falsedataField="city"/>

<mx:AdvancedDataGridColumn headerText="State"
dataField="state"/>

</mx:columns>
</mx:AdvancedDataGrid>
<mx:DataGrid width="100%height="100%"
dropEnabled="true">

<mx:columns>
<mx:DataGridColumn headerText="Total No."
dataField="total"/>

<mx:DataGridColumn headerText="Citysortable="false"
dataField="city"/>

<mx:DataGridColumn headerText="State"
dataField="state"/>

</mx:columns>
</mx:DataGrid>
<mx:Script>
<![CDATA[
import mx.events.FlexEvent;
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
[Bindable]
private var homesForSale:ArrayCollection;
private function initApp():void {
this.srv.send();
}
private function onResult(evt:ResultEvent):void {
this.homesForSale = evt.result.data.region;
}

]]>
</mx:Script>
</mx:Application>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表