Created the blog to add the contents whatever i worked in Flex
The following example shows the customize data grid by applying a copy and paste functionality.
The idea is very simple but i think its useful, the data copied in clipboard can directly paste in excel and it will pasted in proper columns rather than in a single column, I tested this on Excel 2007.
for the complete source here
package com.ib.custom{import flash.events.ContextMenuEvent;import flash.events.Event;import flash.system.System;import flash.ui.ContextMenu;import flash.ui.ContextMenuItem; import mx.controls.Alert;import mx.controls.DataGrid;import mx.controls.dataGridClasses.DataGridColumn;import mx.core.EventPriority;import mx.events.CloseEvent;import mx.events.ListEvent; public class IBDataGrid extends DataGrid{[Bindable] public var enableCopy : Boolean = true;// for creating conext menu item for coping functionalityprivate var copyContextItem:ContextMenuItem;// for storing the header text at only once.private var headerString : String = ''; private var dataToCopy:String = '';public function IBDataGrid(){super();} // I am creating a copy context item and its handler in creation complete of DATAGRID if and only if enableCopy is true.override protected function createChildren():void{super.createChildren();var flag:Boolean = falseif(enableCopy){contextMenu = new ContextMenu();createContextMenu();addEventListener(ListEvent.ITEM_CLICK,itemClickHandler,false, EventPriority.DEFAULT_HANDLER);flag = true;}} private function createContextMenu():void{copyContextItem = new ContextMenuItem("copy row/s");copyContextItem.enabled = false;copyContextItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,copyDataHandler);contextMenu.customItems.push(copyContextItem);// comment the following line if you want default items in context menu.contextMenu.hideBuiltInItems();} private function copyDataHandler(event:Event):void{dataToCopy = '';if(selectedItems != null){dataToCopy = getSelectedRowsData();dataToCopy = ((headerString == '') ? getHeaderData() : headerString)+"\n" + dataToCopy;copyContextItem.enabled = true;System.setClipboard(dataToCopy);}} private function handleAlertClose(event:CloseEvent):void{trace("handling .. the event");if(event.detail == 1){ } }private function getHeaderData():String{headerString = '';for(var j:int = 0; j<> private function getSelectedRowsData():String{var rowsData : String = '';for(var i:int =0;i<> private function itemClickHandler(event:ListEvent):void{copyContextItem.enabled = true;}}}
package com.ib.custom{import flash.events.ContextMenuEvent;import flash.events.Event;import flash.system.System;import flash.ui.ContextMenu;import flash.ui.ContextMenuItem;
import mx.controls.Alert;import mx.controls.DataGrid;import mx.controls.dataGridClasses.DataGridColumn;import mx.core.EventPriority;import mx.events.CloseEvent;import mx.events.ListEvent;
public class IBDataGrid extends DataGrid{[Bindable] public var enableCopy : Boolean = true;// for creating conext menu item for coping functionalityprivate var copyContextItem:ContextMenuItem;// for storing the header text at only once.private var headerString : String = '';
private var dataToCopy:String = '';public function IBDataGrid(){super();}
// I am creating a copy context item and its handler in creation complete of DATAGRID if and only if enableCopy is true.override protected function createChildren():void{super.createChildren();var flag:Boolean = falseif(enableCopy){contextMenu = new ContextMenu();createContextMenu();addEventListener(ListEvent.ITEM_CLICK,itemClickHandler,false, EventPriority.DEFAULT_HANDLER);flag = true;}}
private function createContextMenu():void{copyContextItem = new ContextMenuItem("copy row/s");copyContextItem.enabled = false;copyContextItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,copyDataHandler);contextMenu.customItems.push(copyContextItem);// comment the following line if you want default items in context menu.contextMenu.hideBuiltInItems();}
private function copyDataHandler(event:Event):void{dataToCopy = '';if(selectedItems != null){dataToCopy = getSelectedRowsData();dataToCopy = ((headerString == '') ? getHeaderData() : headerString)+"\n" + dataToCopy;copyContextItem.enabled = true;System.setClipboard(dataToCopy);}}
private function handleAlertClose(event:CloseEvent):void{trace("handling .. the event");if(event.detail == 1){
}
}private function getHeaderData():String{headerString = '';for(var j:int = 0; j<>
private function getSelectedRowsData():String{var rowsData : String = '';for(var i:int =0;i<>
private function itemClickHandler(event:ListEvent):void{copyContextItem.enabled = true;}}}
- imtiyaz