1 advanceddatagrid中的分组grouping应用,比如:
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayCollection;
[Bindable]
private var bookData:ArrayCollection;
private function bookHandler(evt:ResultEvent):void
{
bookData=evt.result.books.stock;
bookGroup.refresh();
}
]]>
</mx:Script>
<mx:HTTPService ;
}
3 flex里的drag and drop。flex可以在datagrid,list等控件里实行drag and drop的,先看例子
<mx:Script>
<![CDATA[
private function creationCompleteHandler():void
{
srclist.dataProvider = ['Reading', 'Skating', 'Movies'];
destlist.dataProvider = [];
}
]]>
</mx:Script>
<mx:Panel title="Select activities" layout="horizontal">
<mx:VBox width="50%">
<mx:Label text="Available activities"/>
<!-- Drag initiator -->
<mx:List
/>
</mx:VBox>
<mx:VBox width="50%">
<mx:Label text="Activities I enjoy"/>
<!-- Drop target -->
<mx:List
/>
</mx:VBox>
必须要设置原始和目标控件的dragEnabled为true,dragmoveEnabled=true时,表示是把内容剪切到另外的目标控件中
,FALSE时只COPY
允许双向拖放,通过把两个列表的dragEnabled和dropEnabled属性都设置为true。就像下边:
<!-- Both drag initiator and drop target -->
<mx:List
dropEnabled="true"
dragMoveEnabled="true"
/>
<!-- . . . -->
<!-- Both drag initiator and drop target -->
<mx:List
dropEnabled="true"
dragMoveEnabled="true"
/>
4 drag and drop在两个datagrid中的复杂点的例子
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/09/19/dragging-rows-between-two-different-flex-datagrid-controls/
-->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="horizontal"
verticalAlign="middle"
backgroundColor="white">
<mx:Array />
</mx:Array>
<mx:ApplicationControlBar dock="true">
<mx:Form>
<mx:FormItem label="DataGrid #1:"
direction="horizontal">
<mx:CheckBox />
</mx:FormItem>
</mx:Form>
</mx:ApplicationControlBar>
<mx:VBox width="50%">
<mx:Label text="DataGrid #1" />
<mx:DataGrid />
</mx:VBox>
<mx:VBox width="50%">
<mx:Label text="DataGrid #2" />
<mx:DataGrid />
</mx:VBox>
</mx:Application>
5 一个将LABLE拖放到LIST里的编程的例子
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.core.*;
import mx.managers.DragManager;
import mx.events.DragEvent;
[Bindable]
private var targetData:ArrayCollection=new ArrayCollection();
private function dragTest
(initiator:Label,myData:String,event:MouseEvent,format:String):void
{
var ds:DragSource=new DragSource();
ds.addData(myData,format);
DragManager.doDrag(initiator,ds,event);
}
private function testDragEnter(evt:DragEvent,format:String):void
{
DragManager.acceptDragDrop(IUIComponent(evt.target));
}
private function testDragDrop(evt:DragEvent,format:String):void
{
var myData:Object=new Object();
myData=evt.dragSource.dataForFormat(format);
listTarget.dataProvider.addItem(myData);
}
]]>
</mx:Script>
<mx:Label dragTest(dragLabel,'this is the
data',event,'stringFormat')"/>
<mx:List width="466"
dragEnter="testDragEnter(event,'stringFormat')" dragDrop="testDragDrop(event,'stringFormat')"></mx:List>