`
xlian
  • 浏览: 1902 次
文章分类
社区版块
存档分类
最新评论

Flex4.5中使用invalidateCell函数更新GridItemRenderer内容的问题

 
阅读更多

这两天在做关于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#propertySummaryhttp://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/spark/components/DataGrid.html


分享到:
评论

相关推荐

    flex4.5d sdk哦

    关于“flex4.5d sdk”这一主题,其核心知识点主要围绕Adobe Flex 4.5 SDK的使用、功能以及在当前技术环境下的地位与获取途径展开。以下将深入解析Flex 4.5 SDK的重要概念、特性及其应用领域,旨在为读者提供全面而...

    flex4.5 权威指南(含源码)英文版

    6. **数据绑定**:Flex 4.5中的数据绑定机制允许UI元素自动反映数据模型的变化,减少了手动更新UI的繁琐工作。 7. **事件驱动编程**:Flex应用程序是基于事件驱动的,通过监听和处理各种事件,如用户交互,可以实现...

    Flex 4.5 API

    在Flex 4.5中,有许多关键的改进和新特性,包括Spark组件模型、Skinning和Styling的增强,以及数据服务的优化。 1. **Spark组件模型**:Spark组件模型是Flex 4.5的核心,它与以前的 Halo 组件模型相比,提供了更...

    Flex4.5+Myeclipse8.5安装

    ### Flex4.5 + Myeclipse8.5 安装指南 #### 一、前言 随着技术的发展,集成开发环境(IDE)的选择对于开发者来说至关重要。本文将详细介绍如何安装Flex 4.5与MyEclipse 8.5,并解决在安装过程中可能遇到的一些常见...

    flex4.5中文文档

    通过上述知识点的总结,读者能够全面了解如何使用Adobe Flex 4.5和Flash Builder高效地开发移动应用,特别是在iPhone和Android平台上。无论是初学者还是有经验的开发者,都能够从中获得实用的指导和支持。

    Flex 4.5''中文资料

    ### Flex 4.5'' 弯曲度传感器中文资料 #### 产品简介 Flex 4.5''弯曲度传感器是一款专用于检测物体弯曲程度的传感器。该传感器具有4.5英寸(约11.43厘米)的长度,能够在不同弯曲角度下产生可变电阻值的变化,从而...

    Introducing Adobe Flex 4.5 SDK

    在本文中,我们将深入探讨Flex 4.5 SDK的关键特性和使用方法。 1. **Flex 4.5的核心特性** - **Spark组件架构**:Flex 4.5引入了全新的Spark组件集,与之前的 Halo 组件相比,Spark组件提供了更强大的自定义样式和...

    Flex4.5常见问题总结

    ### Flex4.5常见问题总结 #### 一、Flex4.5组件开发模型与特性 Flex4.5采用了一种基于组件的开发模型,开发者可以通过继承现有组件并扩展其功能来构建自己的应用程序。这一模型的核心优势在于提高了代码的复用性,...

    Flex 4.5 实现tree拖拽到任意组建

    在Flex 4.5开发中,拖放(Drag & Drop)功能是一项常用且重要的交互设计技术,它允许用户通过鼠标操作将元素从一个位置移动到另一个位置,这在构建用户界面时大大提升了用户体验。本教程将详细介绍如何在Flex 4.5中...

    FSH.rar_flex_flex hibernate_flex4_flex4.5_spring3 flex4.5

    在Flex 4.5中,开发者可以利用Spark组件模型创建更具视觉吸引力的UI,同时受益于ActionScript 3.0的强大编程能力。 Spring 3是Java企业级应用开发的核心框架,提供了一整套服务,包括依赖注入、AOP(面向切面编程)...

    Flex4.5做的3D网页效果展示墙

    在Flex4.5中,可以通过自定义组件或者使用Easing函数来实现这种效果。开发者可能使用了Sprite或Shape对象创建图形,并通过时间轴控制动画,让图形在平面上产生向外扩散的波动,增加用户的交互体验。 接着,是“发光...

    flex4.5 学习资料

    6. **PDF文档**:PDF通常包含详细的教程、指南或参考材料,可能涵盖了Flex 4.5的基本概念、API使用、最佳实践等内容。阅读这些文档可以帮助初学者系统地学习Flex 4.5,并为有经验的开发者提供查阅和复习的资源。 7....

    flex4.5从浅入深第一、二章清晰版

    本书《flex4.5从浅入深》旨在帮助开发者深入理解Flex 4.5的各个方面,从基础知识到高级特性,逐步提升开发技能。标题表明本书分为两大部分,第一章节包含16节内容,第二章节则有5节,都提供了清晰易读的版本。 在...

    Flex 4.5注册码,破解码

    Flex 4.5注册码,破解码

    Flex4.5 Moblie Hello

    Flex4.5 Mobile Hello 是一个基于Adobe Flex 4.5框架开发的移动应用程序示例,主要针对移动设备,如智能手机和平板电脑。Flex是ActionScript 3.0的一个开源框架,用于构建富互联网应用程序(RIA)和跨平台的桌面及...

    flex4.5 打印功能

    Flex 4.5 打印功能是 Adobe Flex 开发框架中的一个重要组成部分,它允许开发者创建具有打印和打印预览功能的富互联网应用程序(RIA)。在 Flex 4.5 中,打印功能得到了显著增强,提供了更加灵活和精细的控制,使得...

    flex4.5从嵌入式教程

    在"flex4.5从浅入深第一章.pdf"中,你将开始这段探索之旅,学习如何搭建Flex 4.5开发环境,创建第一个应用,并逐步掌握上述各个知识点。通过理论与实践相结合,你将能够熟练运用Flex 4.5构建功能丰富的富互联网应用...

    Myeclipse8.5+flex4.5+Blazeds+SSH环境搭建

    2. **Flex 4.5**:Flex 是 Adobe 公司开发的一套用于创建富互联网应用程序(RIA)的框架,Flex 4.5 是其版本之一,支持 ActionScript 3.0 和 MXML,提供了更强大的组件库和设计工具,使开发者能构建更具交互性的用户...

Global site tag (gtag.js) - Google Analytics