Flex AdvancedDataGrid 子节点渲染器展开式混乱问题

上次写道在Flex AdvancedDataGrid中使用树形结构,并且为父节点和多个子节点分别制定渲染器。

 

现在出现问题:

 

 第一次渲染显示正确,当父节点存在多个子节点并且我们为每个子节点指定渲染器,当再次单击父节点展开子节点时子节点渲染器乱序或者是和我们预期的显示不符合?

 

 

解决方案:

 

监听AdvancedDataGrid的AdvancedDataGridEvent.ITEM_OPEN事件,当展开子节点时重新为其指定渲染器

 

 

//_allot.bills为AdvancedDataGrid


_allot.bills.addEventListener(AdvancedDataGridEvent.ITEM_OPEN,open);


public function open(e:AdvancedDataGridEvent):void
		{
			
			var drps:AdvancedDataGridRendererProvider = new  AdvancedDataGridRendererProvider;
			var drpsw:AdvancedDataGridRendererProvider = new AdvancedDataGridRendererProvider;
			var drpc:AdvancedDataGridRendererProvider = new AdvancedDataGridRendererProvider;
			var drpdw:AdvancedDataGridRendererProvider = new AdvancedDataGridRendererProvider;
			var drpps:AdvancedDataGridRendererProvider = new AdvancedDataGridRendererProvider;
			
			drps.depth = 2;
			drps.column = _allot.status;
			drps.renderer = new ClassFactory(CommonStatusRender);
			
			drpsw.depth = 2;
			drpsw.column = _allot.sourceWareHouse;
			drpsw.renderer = new ClassFactory(CommonSourceWareHouseRender);
			
			drpdw.depth = 2;
			drpdw.column = _allot.destWareHouse;
			drpdw.renderer = new ClassFactory(CommonDestWareHouseRender);
			
			drpc.depth = 2;
			drpc.column = _allot.code;
			drpc.renderer = new ClassFactory(CommonCodeRender);
			
			drpps.depth = 1;
			drpps.column = _allot.status;
			drpps.renderer = new ClassFactory(CommonParentStatusRender);
			
			_allot.bills.rendererProviders = [drps,drpsw,drpdw,drpc,drpps];
			
			_allot.bills.invalidateList();
			
		}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值