(第一次修订,于2009年12月9日)
想要做的事: 使用使用List的ItemRenderer,为List中的每一项都加一个序号。
出现的问题: 当为List添加多个ItemRenderer的时候,会出现重复的序号。
做法: ItemRenderer实现IDropInListItemRenderer,重写listData属性,并绑定DataChange事件。让ItemRenderer中的Text控件text绑定listData.selectedIndex+1。
本来想这样就能够实现1、2、3、4、5、……的序号的,但是没有想到添加前4个序号的时候,一切都是正常。但是,当添加第5个序号的时候,滑动一下滚动条就会发现本来应该是5的序号变成了4,在往上滚动滚动条,2也变成了1。来回滚动滚动条,序号更不得了,变得全乱了。
网上查了许多中方法,也许是本人太笨,并没有找到好的解决方案。看了Oreilly的Cookbook也没有看明白,但是我确定第七章最后一节一定有我想要的答案,于是我拼命的理解,拼命的尝试。
COOKBOOK中 写道
It is important to remember that the item renderer is reused by the List. When trying to set states in an item renderer when it is selected, the data of the item renderer must be compared with the selectedItem in the List or DataGridColumn rather than the selectedIndex, because the selectedIndex does not indicate which renderer is selected. In fact, the selected renderer could very well be scrolled away from in the List.
中文版翻译节选 写道
当试图在渲染器被选中为其设置状态时,项目渲染器的数据必须与List或DataGridColumn中的selectedItem进行比较,而不是与selectedIndex比较,因为selectedIndex不能指出是哪个渲染器被选中。实际上,被选中的渲染器能够在List中很好地滚动显示。
通过这段文字可以知道,产生序号乱序的原因是我滚动了滚动条。不能仅仅使用listData.selectedIndex+1的方法赋值。必须要用itemRenderer中的数据同selectedItem进行比较。
结论:
在原来的基础上仅仅将Text控件的text属性绑定{
ArrayCollection((_listData.owner as List).dataProvider).getItemIndex(this.data)+1}
就可以实现正常的序号显示了,其实非常简单。
第一次修订:
注意组件的绑定属性:{
ArrayCollection((_listData.owner as List).dataProvider).getItemIndex(this.data)+1}中的ArrayCollection也有可能是其他类型,如XMLListCollection。
分享到:
相关推荐
在Flex4.x中,构建一个可编辑的List组件并实现带序号排列的功能是一项常见的需求,这主要涉及到Flex4的List组件、数据绑定、ItemRenderer自定义以及数据管理等方面的知识。下面将详细介绍如何实现这样的功能。 1. *...
在Flex框架中,`List`组件是用于展示和操作数据集的一个强大工具。根据给定的文件信息,我们可以深入探讨如何在Flex应用中使用`List`组件,以及如何结合脚本进行动态数据处理。 ### 标题:Flex组件LIST使用 #### ...
利用google-iframe在flex中嵌入网页是在swf上覆盖一个div,flex与网页无法融合,这样会出现各种显示,控制问题,如页面自适应,页面显示控制,内容遮盖,网页内容不随flex滚动条滚动等,现在这些问题都解决了
在本文中,我们将深入探讨基于Flex技术实现的列表展示,特别是在具有添加和删除功能以及特殊效果的情况下。Flex是一种强大的用户界面框架,常用于构建富互联网应用程序(RIA)。它由Adobe开发,允许开发者创建动态、...
### 构建全栈式Flex、BlazeDS和Spring集成解决方案——第二部分:编写to-do list服务器端 #### 概述 本篇文章是构建全栈式Flex、BlazeDS和Spring集成解决方案系列的第二部分,重点在于搭建to-do list应用程序的...
在Flex4中,List组件是用于展示数据列表的常用组件,它可以显示一组可滚动的数据项。在实际应用中,我们经常需要实现对列表中的所有项进行全选或反选的操作,以便用户能快速选择或取消选择全部内容。本文将详细探讨...
在Flex4中,`Menu`和`List`是两种重要的组件,它们被广泛用于构建用户界面,提供下拉菜单和列表展示数据的功能。本实例深入探讨了如何在Flex4环境中有效地利用这两个组件。 首先,`Menu`组件在Flex中常用于创建下拉...
### Maven构建全栈式Flex、BlazeDS和Spring集成解决方案 #### 一、概述 随着富互联网应用(RIA)技术的日益成熟,如何将类似Adobe Flex这样的RIA应用与稳健的服务器端技术进行集成成为了关键问题。Java开发者常用...
标题中的“Flex移动开发第一次分享”表明这次的内容主要聚焦于使用Adobe Flex技术进行移动应用的开发。Flex是一种基于ActionScript和MXML的开源框架,主要用于构建富互联网应用程序(RIA)和移动应用程序。这次分享...
本篇文章将深入探讨如何将这三个技术有效地整合在一起,构建一个全栈式的解决方案。 Flex是一种基于ActionScript和Flash Player的前端开发框架,用于创建富互联网应用程序(RIA)。它提供了丰富的图形用户界面组件...
构建全栈式Flex、BlazeDS和Spring集成解决方案的第一步是创建Maven Flex模块。Maven是一个项目管理和综合工具,通过定义项目对象模型(POM),能够自动化构建过程,包括编译、测试、打包、部署等。使用Maven进行Flex...
### Maven构建全栈式Flex、BlazeDS和Spring集成解决方案:第二部分——编写to-do_list服务器端 在深入探讨如何构建一个集成了Flex、BlazeDS和Spring的全栈式解决方案之前,让我们先简要回顾一下这个系列文章的背景...
在IT行业中,FLEX图表是一种广泛使用的数据可视化工具,它允许开发者创建丰富的、交互式的2D和3D图表,以直观地展示复杂的数据。本文将深入探讨FLEX图表相关解决方案,帮助你理解如何利用FLEX进行高效的数据图表开发...
本方案将详细探讨如何在Flex项目中实现完美的多语言支持,以满足i18n(国际化)的需求。 首先,我们需要了解什么是i18n。i18n是“国际化”的缩写,这里的数字18代表英文单词"internationalization"中的字母数量。这...
在本压缩包中,您将找到一系列与Flex相关的学习资料,包括帮助文档和常见问题的解决方案,这些资料对初学者和有经验的开发者都非常有价值。 1. **Flex基础**:Flex提供了强大的组件库,允许开发者构建用户界面,...
在项目中,可能需要结合以上方法进行调试和调整,找到最适合你的解决方案。记住,关键在于理解编码原理,以及在Flex和服务器之间协调一致的字符编码。对于`解决Flex中文乱码.txt`这个文件,它可能包含了具体的代码...
构建全栈式Flex、BlazeDS和Spring集成解决方案意味着将这些技术有效地整合在一起,创建出一个高效、可扩展的富互联网应用程序(RIA)平台。 Flex是一个基于ActionScript和Flash Player的开源框架,用于构建具有丰富...
### Flex第一步知识点解析 #### 一、Flex简介与特性 Flex是一种开源的Web应用程序开发框架,主要用于构建跨浏览器和跨平台的应用程序。Flex基于Flash Player和Adobe AIR运行时环境,可以创建高性能且丰富的互联网...
9. **调试和测试**:Flex SDK包含了Flex Builder,这是一个强大的IDE,内置了调试工具和性能分析器,有助于开发者定位问题和优化性能。 10. **最佳实践和设计模式**:学习Flex的过程中,了解和应用设计模式,如MVC...