flex在使用itemrender时,再次刷新数据时itemrender错乱问题
来源:互联网 发布:淘宝网男夏装 编辑:程序博客网 时间:2024/06/08 06:55
显然flex为了保证执行效率,只是单纯的更新了数据部分。忽略了视图部分的更新。已经给出了一个可行的解决方案,链接如下http://bbs.9ria.com/viewthread.php?tid=66077
以上的方案是利用绑定,把checkbox的selected属性绑定到dataProvider中。这样就把他当做了一个数据,flex就会自动更新了。
不过由于贫道开发的时候,不适合用绑定,所以不得不另辟捷径,所幸最后找到了另外的解决办法。
通过updateComplete事件。我是UIComponent的一个事件,当flex组件的生命周期结束,也就是执行了commitProperties,measured,updateDisplayList后,我便会被派发。
根据list的渲染原理,假如数据源也就是dataProvider有10条数据,但是flex不会创建10个实例,他只会创建显示出来的那几条数据的实例。当我们拉动滚动条的时候,flex会根据当前的滚动位置来更新实例的数据内容。也就是说,当更新完毕后,他一定会派发updateComplete事件。我的思路就是,对itemrender的updateComplete事件进行侦听。
因为当玩家选中checkbox时,我把对应的itemrender中的数据的某一个唯一的属性记录下来,用来代表,当前lsit列表中的这个数据的checkbox已经被选中。加入我选了一个叫做heroID的属性,因为我是用这个来做将领列表的呈现的。heroID是唯一的。我选中一个将领,就把他的heroID放到外面的一个数组中。这样所有选中的将领都被记录下来。然后就在updateComplete事件做判断,当更新后的itemrender的heroID没有在外面数组中,就代表没有被选中,那么就把checkbox的选中状态设为flase,反之,设为true.这样就达到了之前一样的效果。
以上的方案是利用绑定,把checkbox的selected属性绑定到dataProvider中。这样就把他当做了一个数据,flex就会自动更新了。
不过由于贫道开发的时候,不适合用绑定,所以不得不另辟捷径,所幸最后找到了另外的解决办法。
通过updateComplete事件。我是UIComponent的一个事件,当flex组件的生命周期结束,也就是执行了commitProperties,measured,updateDisplayList后,我便会被派发。
根据list的渲染原理,假如数据源也就是dataProvider有10条数据,但是flex不会创建10个实例,他只会创建显示出来的那几条数据的实例。当我们拉动滚动条的时候,flex会根据当前的滚动位置来更新实例的数据内容。也就是说,当更新完毕后,他一定会派发updateComplete事件。我的思路就是,对itemrender的updateComplete事件进行侦听。
因为当玩家选中checkbox时,我把对应的itemrender中的数据的某一个唯一的属性记录下来,用来代表,当前lsit列表中的这个数据的checkbox已经被选中。加入我选了一个叫做heroID的属性,因为我是用这个来做将领列表的呈现的。heroID是唯一的。我选中一个将领,就把他的heroID放到外面的一个数组中。这样所有选中的将领都被记录下来。然后就在updateComplete事件做判断,当更新后的itemrender的heroID没有在外面数组中,就代表没有被选中,那么就把checkbox的选中状态设为flase,反之,设为true.这样就达到了之前一样的效果。
这个方案的核心思想就是利用updateComplete事件。
转载地址:http://bbs.9ria.com/thread-113497-1-1.html
0 0
- flex在使用itemrender时,再次刷新数据时itemrender错乱问题
- flex datagrid itemrender 渲染 问题及解决办法
- Flex itemrender event 冒泡的问题
- Flex datagrid itemrender/itemeditor
- Flex tree ItemRender
- 当ItemRender用ComboBox的时选项的重置问题
- itemRender---之outerDocument : 使用itemRender 和item Editor时想要访问外部变量或方法的关键字
- outerDocument : 使用itemRender 和item Editor时想要访问外部量的关键字
- flex itemRender 与父组件的通讯
- Flex中DataGrid,itemrender以及多行多列值控制
- Flex中DataGrid,itemrender以及多行多列值控制
- ItemRender---之使用ClassFactory生成渲染器
- ItemRender---之理解 Flex itemRenderer - 状态和过渡
- Flex代码实现汇总:List中的itemRender用法
- flex 对datagrid列表添加图片文本 itemRender
- DataGrid,ItemEditors,ItemRender
- 诡异的itemRender
- Flex datagrid itemrenderer刷新显示错乱问题
- mysql远程链接问题 ERROR 2003 (HY000): Can't connect to MySQL server
- linux下将不同线程绑定到不同core和cpu上 pthread_setaffinity_np
- NSNotificationCenter消息通信机制介绍(KVO)
- 移动互联网营销时代 APP更要顺势而为
- maven加载本地的jar依赖
- flex在使用itemrender时,再次刷新数据时itemrender错乱问题
- js类方法,对象方法,原型的理解
- Android中使用log4j
- android+vuforia(AR)搭建(java版)
- ubuntu下搜狗拼音输入法的配置
- solr配置
- 如何将QString转换为char *或者相反
- Android Layout机制
- Spring配置之OpenSessionInViewFilter