这两天在做关于Flex网站应用的项目,使用的开发环境是flash builer4.5,项目中使用了DataGrid组件,器数据源在外部.as文件中。DataGrid中使用了GridItemRenderer来包含LinkButton和Label,但是在编程中发现DataGrid数据源的修改不能改变与之绑定的LinkButton和Label的相关属性,在网上查了很久也没看到相关问题的解决方案,折腾一天之后,还是在官方帮助文档上找到了解决方法。废话不再多说,下面给出详细情况和解决方案。
<s:DataGrid id="dataGrid1" width="100%" height="60%" dataProvider="{arrColl2}">
上面是我使用的DataGrid的一些属性,其中有这样一列<s:GridColumn headerText="状态" dataField="state"/>,当arrColl2中某一个数据对象(如arrColl2[i])的state改变时,使用dataGrid1.invalidateCell(i,2)可以使得“状态”列的相应单元格内容改变(注:2为“状态”这一列的列号)。我感觉invalidateCell挺好用的,于是在下面这一列的改变中,我也同样使用了类似的方法,结果就出问题了。一开始的代码版本如下:
<s:GridColumn dataField="haveRe" headerText="查看报告摘要">
<s:itemRenderer>
<fx:Component>
<s:GridItemRenderer clipAndEnableScrolling="true">
<mx:LinkButton label="查看报告" accentColor="#cdddf3" visible="{data.haveRe}">
</mx:LinkButton>
<s:Label id="mylab1" text="{data.haveRe.toString()}"/>
</s:GridItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:GridColumn>
当我在外部.as文件中修改arrColl2[i].haveRe=true后,使用dataGrid1.invalidateCell(i,3)对“查看报告摘要列”进行更新时,LinkButton的visible依然是false。在查了很久之后才发现,原来GridItemRenderer内容的改变需要重写prepare()方法,在根据官方文档做了相应修改之后,代码如下:
<s:GridColumn dataField="haveRe" headerText="查看报告摘要">
<s:itemRenderer>
<fx:Component>
<s:GridItemRenderer clipAndEnableScrolling="true">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
override public function prepare(hasBeenRecycled:Boolean):void
{
if(data!=null)
{
try{
if(data.haveRe)
{
mylink1.visible=true;
mylab1.text = "true";
}
}
catch(e:Error)
{
Alert.show("出错了……"+e.toString());
}
}
}
]]>
</fx:Script>
<mx:LinkButton id="mylink1" label="查看报告" accentColor="#cdddf3" visible="false">
</mx:LinkButton>
<s:Label id="mylab1" text="false"/>
</s:GridItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:GridColumn>
运行后达到了我想要的效果。
好的,情况讲述就到这里了,重写prepare及invalidateCell的使用请参看官方文档:http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/spark/components/gridClasses/GridItemRenderer.html#propertySummary和http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/spark/components/DataGrid.html。
分享到:
相关推荐
关于“flex4.5d sdk”这一主题,其核心知识点主要围绕Adobe Flex 4.5 SDK的使用、功能以及在当前技术环境下的地位与获取途径展开。以下将深入解析Flex 4.5 SDK的重要概念、特性及其应用领域,旨在为读者提供全面而...
6. **数据绑定**:Flex 4.5中的数据绑定机制允许UI元素自动反映数据模型的变化,减少了手动更新UI的繁琐工作。 7. **事件驱动编程**:Flex应用程序是基于事件驱动的,通过监听和处理各种事件,如用户交互,可以实现...
在Flex 4.5中,有许多关键的改进和新特性,包括Spark组件模型、Skinning和Styling的增强,以及数据服务的优化。 1. **Spark组件模型**:Spark组件模型是Flex 4.5的核心,它与以前的 Halo 组件模型相比,提供了更...
### Flex4.5 + Myeclipse8.5 安装指南 #### 一、前言 随着技术的发展,集成开发环境(IDE)的选择对于开发者来说至关重要。本文将详细介绍如何安装Flex 4.5与MyEclipse 8.5,并解决在安装过程中可能遇到的一些常见...
通过上述知识点的总结,读者能够全面了解如何使用Adobe Flex 4.5和Flash Builder高效地开发移动应用,特别是在iPhone和Android平台上。无论是初学者还是有经验的开发者,都能够从中获得实用的指导和支持。
### Flex 4.5'' 弯曲度传感器中文资料 #### 产品简介 Flex 4.5''弯曲度传感器是一款专用于检测物体弯曲程度的传感器。该传感器具有4.5英寸(约11.43厘米)的长度,能够在不同弯曲角度下产生可变电阻值的变化,从而...
在本文中,我们将深入探讨Flex 4.5 SDK的关键特性和使用方法。 1. **Flex 4.5的核心特性** - **Spark组件架构**:Flex 4.5引入了全新的Spark组件集,与之前的 Halo 组件相比,Spark组件提供了更强大的自定义样式和...
### Flex4.5常见问题总结 #### 一、Flex4.5组件开发模型与特性 Flex4.5采用了一种基于组件的开发模型,开发者可以通过继承现有组件并扩展其功能来构建自己的应用程序。这一模型的核心优势在于提高了代码的复用性,...
在Flex 4.5开发中,拖放(Drag & Drop)功能是一项常用且重要的交互设计技术,它允许用户通过鼠标操作将元素从一个位置移动到另一个位置,这在构建用户界面时大大提升了用户体验。本教程将详细介绍如何在Flex 4.5中...
在Flex 4.5中,开发者可以利用Spark组件模型创建更具视觉吸引力的UI,同时受益于ActionScript 3.0的强大编程能力。 Spring 3是Java企业级应用开发的核心框架,提供了一整套服务,包括依赖注入、AOP(面向切面编程)...
在Flex4.5中,可以通过自定义组件或者使用Easing函数来实现这种效果。开发者可能使用了Sprite或Shape对象创建图形,并通过时间轴控制动画,让图形在平面上产生向外扩散的波动,增加用户的交互体验。 接着,是“发光...
6. **PDF文档**:PDF通常包含详细的教程、指南或参考材料,可能涵盖了Flex 4.5的基本概念、API使用、最佳实践等内容。阅读这些文档可以帮助初学者系统地学习Flex 4.5,并为有经验的开发者提供查阅和复习的资源。 7....
本书《flex4.5从浅入深》旨在帮助开发者深入理解Flex 4.5的各个方面,从基础知识到高级特性,逐步提升开发技能。标题表明本书分为两大部分,第一章节包含16节内容,第二章节则有5节,都提供了清晰易读的版本。 在...
Flex 4.5注册码,破解码
Flex4.5 Mobile Hello 是一个基于Adobe Flex 4.5框架开发的移动应用程序示例,主要针对移动设备,如智能手机和平板电脑。Flex是ActionScript 3.0的一个开源框架,用于构建富互联网应用程序(RIA)和跨平台的桌面及...
Flex 4.5 打印功能是 Adobe Flex 开发框架中的一个重要组成部分,它允许开发者创建具有打印和打印预览功能的富互联网应用程序(RIA)。在 Flex 4.5 中,打印功能得到了显著增强,提供了更加灵活和精细的控制,使得...
在"flex4.5从浅入深第一章.pdf"中,你将开始这段探索之旅,学习如何搭建Flex 4.5开发环境,创建第一个应用,并逐步掌握上述各个知识点。通过理论与实践相结合,你将能够熟练运用Flex 4.5构建功能丰富的富互联网应用...
2. **Flex 4.5**:Flex 是 Adobe 公司开发的一套用于创建富互联网应用程序(RIA)的框架,Flex 4.5 是其版本之一,支持 ActionScript 3.0 和 MXML,提供了更强大的组件库和设计工具,使开发者能构建更具交互性的用户...