flex4

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" 
			   minWidth="955" minHeight="600"
			   creationComplete="prodData.send()">
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.events.DragEvent;
			import mx.rpc.events.ResultEvent;
			
			[Bindable]
			private var products:ArrayCollection;
			[Bindable]
			private var targetListDP:ArrayCollection=new ArrayCollection();
			
			private function resultHandler(event:ResultEvent):void{
				products=event.result.catalog.product;
			}
			private function targetList_dragDropHandler(event:DragEvent):void
			{
				var dgRow:Object=event.dragSource.dataForFormat("items");

		//		targetList.dataProvider.addItem(targetList.dataProvider.length);
				
				var s:Array=targetList.dataProvider.toArray();
				//trace(s);
				var i:int;
				var flag:Boolean;
				flag=false;
				for(i=0;i<s.length;i++)
				{
					trace( s[i].toString() );
					if( dgRow[0].name == s[i].toString() )
					{
						flag=true;
						break;
					}
				}
				
				if( flag == false)
					targetList.dataProvider.addItem(dgRow[0].name);
				
				//trace(targetList.dataProvider);
				event.preventDefault();
			}
		]]>
	</fx:Script>
	
	<s:layout>
		<s:VerticalLayout gap="30"
			paddingLeft="20" paddingTop="20"/>
	</s:layout>
	
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
		<s:HTTPService id="prodData"
			url="http://www.flexgrocer.com/product.xml"
			result="resultHandler(event)"/>			
	</fx:Declarations>	
	
	<mx:DataGrid id="initiatorGrid" 
				 dataProvider="{products}"
				 dragEnabled="true">
		<mx:columns>
			<mx:DataGridColumn dataField="name" headerText="Product"/>
			<mx:DataGridColumn dataField="cost" headerText="Prine"/>
			<mx:DataGridColumn dataField="isLowFat" headerText="Low Fat"/>
			<mx:DataGridColumn dataField="isOrganic" headerText="Organic"/>
		</mx:columns>
	</mx:DataGrid>
	
	<s:List id="targetList"
			 width="200" 
			 dropEnabled="true" 
			 dataProvider="{targetListDP}"
			 dragDrop="targetList_dragDropHandler(event)"/>	
</s:Application>

你可能感兴趣的:(flex4)