Search code examples
actionscript-3datagridflash-v3-components

Datagrid selected row at a certain column as3


I need to get the value of a certain column in the selected row via AS3, how can I do this?

It keeps returning null when I try grid.SelectedItem.text...

Thanks for the help! I need to be able to reference the column by name, in this case "ID".

EDIT: Does this require an event or something? Shouldn't there be a method for this built in? You'd think so...


Solution

  • Can you be a bit more specific ?

    You can get get all the data you need from the DataGrid using the selectedItem.yourProperty. Can you post a snippet that might make thing clear ?

    Referencing a column by name is pretty easy:

    myDataGrid.getColumnAt(myDataGrid.getColumnIndex('ID'))
    

    The data is in the DataGrid's dataProvider, the column is there for other purposes.

    Say you have an ID property added to the DataGrid:

    var dp:DataProvider = new DataProvider();
    for(var i:int = 0 ; i < 7; i++)
        dp.addItem({label:'label '+(i+1), ID:Math.random()});
    myDataGrid.dataProvider = dp;
    

    If you have setup a handler for the CHANGE event, you should be able to get the data you need through the selectedItem:

    myDataGrid.addEventListener(Event.CHANGE, changed);
    
    function changed(event:Event):void {
        trace('item at index ' + myDataGrid.selectedIndex + ' has ID: ' + myDataGrid.selectedItem.ID);
    }
    

    HTH, George