读书人

Flex DataGrid CheckBox 选择状态在拉

发布时间: 2012-05-09 12:13:59 作者: rapoo

Flex DataGrid CheckBox 选择状态在拉动滚动条后 变混乱的问题
在网上查了一下解决办法,可是它老是报错
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
_data[dgld.dataField] = selected;运行到这一行时就报错了。 各位大侠帮忙看看。谢谢

package checkbox{
import flash.events.Event;
import flash.events.MouseEvent;

import mx.controls.CheckBox;
import mx.controls.dataGridClasses.DataGridListData;

public class CheckboxItemRanderer extends CheckBox{
private var _data:Object;
override public function set data(value:Object):void
{
_data = value;
if(_data)
{
var dgld:DataGridListData = DataGridListData(listData);
selected = _data[dgld.dataField];
}
}

override public function get data():Object
{
return _data;
}

override protected function clickHandler(event:MouseEvent):void
{
super.clickHandler(event);
var dgld:DataGridListData = DataGridListData(listData);
_data[dgld.dataField] = selected;
owner.dispatchEvent(new Event("updated"));
}
}
}



[解决办法]
1.renderer已经就有data这个属性了,不需要在申明一个_data放data,多此一举还可能出错,你在别的方法里也能拿到data属性;
2.空指针可能是dgld还没被初始化,你加个判断
var dgld:DataGridListData = listData as DataGridListData;
if(data && dgld)
{
selected = _data[dgld.dataField];
}

读书人网 >flex

热点推荐