• 締切済み

DataGridでクリックされた行と列の位置を取得する

dg = new DataGrid(); var Item1:Object = { Name:"John", Number:"1", Age:"20" }; var Item2:Object = { Name:"Mary",Number:"2",Age:"40" }; var Item3:Object = { Name:"Gamma", Number:"3", Age:"60" }; dg.columns = ["Name", "Number", "Age"]; dg.addItem(Item1); dg.addItem(Item2); dg.addItem(Item3); dg.addEventListener(Event.CHANGE, onClick); private function onClick(e:evant):void{ /// } 以上のようにDataGridで3×3のアイテムがあったとき クリックされたアイテムの行と列の位置を知るにはどのように したらよいのでしょうか?

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

ご質問で書かれていらっしゃるスクリプトは,ActionScript3.0 か何かでしょうか? 意味がわからない部分があります。 (私,AS3 はわかりません。また Flex もわかりません。) Flash8,MX2004 で ActionScript2.0 を使用する場合, DataGridリスナー.cellPress イベント で, itemIndex(行番号) と columnIndex(列番号) を取得するとできます。 --- 例 ----------------------------- var Item1:Object = {Name:"John", Number:"1", Age:"20"}; var Item2:Object = {Name:"Mary", Number:"2", Age:"40"}; var Item3:Object = {Name:"Gamma", Number:"3", Age:"60"}; dg.columnNames = ["Name", "Number", "Age"]; dg.addItem(Item1); dg.addItem(Item2); dg.addItem(Item3); // リスナーオブジェクトの作成 var dgListener:Object = new Object(); dgListener.cellPress = function(evtObj:Object) { trace("行番号(0~) →"+evtObj.itemIndex); trace("列番号(0~) →"+evtObj.columnIndex); }; // リスナーオブジェクトの登録 dg.addEventListener("cellPress", dgListener); ------------------------------------ DataGridリスナー.change では, 対象(イベントオブジェクト)が変わりますから, 行番号 selectedIndex しか取得できません。 DataGridリスナー.click は全く別の用途で使用します。

noname#190095
質問者

お礼

回答ありがとうございます。AS3ではエラーになるようです。

関連するQ&A