Skip to main content
Kristtee
Known Participant
June 2, 2010
Answered

datagrid data into a textfield

  • June 2, 2010
  • 1 reply
  • 765 views

hi there

i am just trying to get the datagrid selected item data into a textField tf. but i get object object, not the data. can you help pls.

appreciate your time and help.

thank you

krs

code

----------------------------------------

import fl.controls.dataGridClasses.DataGridColumn;
import fl.data.DataProvider;
import flash.net.*;
import flash.events.*;

aDg.addEventListener(MouseEvent.CLICK, clickHandler);

function clickHandler(event:MouseEvent):void{
    var dgdata:String = event.target.data;
    tf.text = dgdata;
}

var req:URLRequest = new URLRequest("team.xml");
var loader:URLLoader = new URLLoader();
loader.load(req);
loader.addEventListener(Event.COMPLETE, loaded);

function loaded(e:Event):void{
    var teamxml:XML = new XML(loader.data);
//    trace(teamxml);
    var nameCol:DataGridColumn = new DataGridColumn("name");
    nameCol.headerText = "Name";
//    nameCol.width = 120;
    var avgCol:DataGridColumn = new DataGridColumn("avg");
    avgCol.headerText = "Average";
//    avgCol.width = 60;
    
    var myDP:DataProvider = new DataProvider(teamxml);
    
    aDg.columns = [nameCol, avgCol];
//    aDg.width = 200;
    aDg.dataProvider = myDP;
//    aDg.rowCount = aDg.length;
}

//////////////////////////xml//////////////////////
<team>
    <player name="Player A" avg="0.293" />
    <player name="Player B" avg="0.214" />
    <player name="Player C" avg="0.317" />
    <player name="Player A" avg="0.293" />
    <player name="Player B" avg="0.214" />
    <player name="Player C" avg="0.317" />
</team>

This topic has been closed for replies.
Correct answer

event.currentTarget will get you the dataGrid - what you have now: event.target will get you the cell renderer inside the grid... Also, there is no data property in your xml - so you need to use name and/or avg.

So you can do like:

function clickHandler(event:MouseEvent):void{
    var dgdata:Object = event.currentTarget.selectedItem;
    tf.text = dgdata.name + " " + dgdata.avg;
}

1 reply

Correct answer
June 2, 2010

event.currentTarget will get you the dataGrid - what you have now: event.target will get you the cell renderer inside the grid... Also, there is no data property in your xml - so you need to use name and/or avg.

So you can do like:

function clickHandler(event:MouseEvent):void{
    var dgdata:Object = event.currentTarget.selectedItem;
    tf.text = dgdata.name + " " + dgdata.avg;
}

Kristtee
KristteeAuthor
Known Participant
June 3, 2010

hi dmennenoh

thank you so much. You rock. Really appreciate your time and help.

Thank you

Krish