Flash中DataGrid的使用

在做分享的Demo时,初次使用了V2的DataGrid组件,用来存放Diary列表,如下图


1:绑定数据
这里使用的XML作为数据源
function LoadList(vDate) {
     myDataGrid.removeAll();
     var objXml = new XML();
     objXml.load("diary.xml");
     objXml.ignoreWhite = true;
     objXml.onLoad = function(success) {
     if (success) {
           for (var i = 0; i<objXml.childNodes[0].childNodes[1].childNodes.length; i++) {
                var objItem = objXml.childNodes[0].childNodes[1].childNodes[i].childNodes;
                var strID = objItem[0].childNodes.toString();
                var strTitle = objItem[1].childNodes.toString();
                var strDate = objItem[2].childNodes.toString();
                var strContent = objItem[3].childNodes.toString();
                if(vDate != ""){
                      if(vDate == strDate){
                            var objListItem = {序号:strID, 主题:strTitle, 日期:strDate};
                            myDataGrid.addItem(objListItem);
                      }
                }else{
                            var objListItem = {序号:strID, 主题:strTitle, 日期:strDate};
                            myDataGrid.addItem(objListItem);
                }
                myDataGrid.getColumnAt(0).width = 40;
                myDataGrid.getColumnAt(1).width = 170;
                myDataGrid.getColumnAt(2).width = 60;
         }
     }
   }
}

2:现在要点击DataGrid中某一行时获得“序号”栏位下的值,搞了半天也没有发现什么方法能够获得。
Flash帮助中只提供了如下的方式:

listenerObject = new Object();
listenerObject.cellPress = function(eventObject){
    // 此处插入您的代码
}
myDataGridInstance.addEventListener("cellPress", listenerObject)


其中eventObject提供的以下几个属性:
columnIndex 一个数字,指明目标列的索引。第一个位置是 0。
itemIndex 一个数字,指明目标行的索引。第一个位置是 0。
type 字符串 "cellPress"。

但是通过这些属性,琢磨了半天也没有找到合适的方法获取选中行的“序号”。
后来,经过不断的测试加联系(与ASP.NET的DataGrid相似)发现,原来可以采用如下的方式:

MyListenerOnGrid = new Object();
MyListenerOnGrid.cellPress = function(eventObject){
     //var rowID = eventObject.itemIndex;
     //var oColumn = myDataGrid.getColumnAt(0);
     var strID = myDataGrid.selectedItem[myDataGrid.columnNames[0]];
     trace(strID);
}
myDataGrid.addEventListener("cellPress", MyListenerOnGrid);

原来它也有selectedItem的属性,哎,就是帮助太少了,都没有提到它!

不管怎么说,辗转几番还是搞定了,呵呵!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值