Dear,

Try the following code. It will give u the solution :


<?xml version="1.0" ?>
 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";>
 <mx:Script>
 <![CDATA[

    import flash.events.KeyboardEvent;

//===========================================
    private function dataGridKeyDownHandler(event:KeyboardEvent):void
    {
      if (event.ctrlKey && !dataGrid.getChildByName("clipboardProxy"))
      {
        // Adding an invisible TextField object to the DataGrid

        var textField:TextField = new TextField();
        textField.name = "clipboardProxy";
        dataGrid.addChild(textField);
        textField.visible = false;

        textField.type = TextFieldType.INPUT;
        textField.multiline = true;

        // Populate the TextField with selected data in Tab Separated
Values(TSV) format

        textField.text = getTextFromItems(dataGrid.selectedItems);
        textField.setSelection(0, textField.text.length - 1);

        // call textInput listner to listen text input event

        textField.addEventListener(TextEvent.TEXT_INPUT,
            clipboardProxyPasteHandler);

        // Set player-level focus to the TextField

        systemManager.stage.focus = textField;
      }
    }
//=========================================
    private function dataGridKeyUpHandler(event:KeyboardEvent):void
    {
      if (!event.ctrlKey)
      {
        var textField:TextField = TextField(dataGrid
            .getChildByName("clipboardProxy"));
        if (textField)
          dataGrid.removeChild(textField);
      }
    }
//=========================================
    private function clipboardProxyPasteHandler(event:TextEvent):void
    {
      // Extract values from TSV (Tab Separated Values) format and
      // populate the DataGrid

      var items:Array = getItemsFromText(event.text);
      for each (var item:Object in items)
        dataGrid.dataProvider.addItem(item);
    }
//========================================
    private function getItemsFromText(text:String):Array
    {
      var rows:Array = text.split("\n");
      if (!rows[rows.length - 1])
        rows.pop();

      var columns:Array = dataGrid.columns;
      var itemsFromText:Array = [];

      for each (var rw:String in rows)
      {
        var fields:Array = rw.split("\t");

        var n:int = Math.min(columns.length, fields.length);
        var item:Object = {};
        for (var i:int = 0; i < n; i++)
          item[columns[i].dataField] = fields[i];

        itemsFromText.push(item);
      }

      return itemsFromText;
    }
//=====================================
    private function getTextFromItems(items:Array):String
    {
      var columns:Array = dataGrid.columns;
      var textFromItems:String = "";

      for each (var it:Object in items)
      {
        for each (var c:DataGridColumn in columns)
          textFromItems += it[c.dataField] + "\t";
        textFromItems += "\n";
      }

      return textFromItems;
    }
//=====================================

  ]]>
  </mx:Script>

 <mx:DataGrid id="dataGrid" editable="true"
keyDown="dataGridKeyDownHandler(event)"
keyUp="dataGridKeyUpHandler(event)" sortableColumns="false"

draggableColumns="false" >
         <mx:columns>
            <mx:DataGridColumn headerText="S.No." dataField="col1"
wordWrap="true"/>
            <mx:DataGridColumn headerText="Column 1" dataField="col2"
wordWrap="true"/>
            <mx:DataGridColumn headerText="Column 2" dataField="col3"
wordWrap="true"/>
            <mx:DataGridColumn headerText="Column 3" dataField="col4"
wordWrap="true"/>
          </mx:columns>
          <mx:dataProvider>
             <mx:Object col1="ONE" col2="INDIA" col3="USA" col4="CHINA" />
          </mx:dataProvider>
  </mx:DataGrid>

  </mx:Application>

-- 
You received this message because you are subscribed to the Google Groups "Flex 
India Community" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/flex_india?hl=en.

Reply via email to