flex4 datagrid中使用checkbox中问题
datagrid中有大量数据,没有分页,存在下拉滚动条,每行的<s:checkbox/>选中之后,再拉动下拉滚动条,checkbox就变的很乱了,位置也变,选择的数量也变...
datagrid中有大量数据,没有分页,存在下拉滚动条,每行的<s:checkbox/>选中之后,再拉动下拉滚动条,checkbox就变的很乱了,位置也变,选择的数量也变了, 请问这个问题怎么解决?
展开
1个回答
展开全部
这个问题我也遇到过,我也是在网上找的资料看的。
需要重新复写一个CheckBox,在CheckBox被选中后,赋值给相应的data,将状态保存下来即可。
package comp.control.itemRenderer {
import flash.events.Event;
import mx.controls.CheckBox;
public class CheckboxItemRanderer extends CheckBox{
public function CheckboxItemRanderer() {
super();
this.addEventListener('change', changeHandler);
}
private var _data:Object;
override public function get data():Object {
return _data;
}
override public function set data(value:Object):void {
_data = value;
if(_data && _data['selected']){
this.selected = true;
}else{
this.selected = false;
}
}
private function changeHandler(event:Event):void{
_data['selected'] = this.selected;
}
}
}
需要重新复写一个CheckBox,在CheckBox被选中后,赋值给相应的data,将状态保存下来即可。
package comp.control.itemRenderer {
import flash.events.Event;
import mx.controls.CheckBox;
public class CheckboxItemRanderer extends CheckBox{
public function CheckboxItemRanderer() {
super();
this.addEventListener('change', changeHandler);
}
private var _data:Object;
override public function get data():Object {
return _data;
}
override public function set data(value:Object):void {
_data = value;
if(_data && _data['selected']){
this.selected = true;
}else{
this.selected = false;
}
}
private function changeHandler(event:Event):void{
_data['selected'] = this.selected;
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询