加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex中NavigatorContent的通信以及itemRenderer对dataGridColumn

发布时间:2020-12-15 04:29:08 所属栏目:百科 来源:网络整理
导读:今天遇到了麻烦,我企图在两个NavigatorContente中传送数据,刚开始的思路是设置iparent属性,搞的一团乱,而且有个问题解决不了,就是如何在我点击dataGridCloumn中的查看按钮时,实时的传送数据。后来想,既然两个NavigatorContent在一个ViewStack中,为什

今天遇到了麻烦,我企图在两个NavigatorContente中传送数据,刚开始的思路是设置iparent属性,搞的一团乱,而且有个问题解决不了,就是如何在我点击dataGridCloumn中的查看按钮时,实时的传送数据。后来想,既然两个NavigatorContent在一个ViewStack中,为什么不用ViewStack直接控制。便取消掉iparent设置。但是仍有一个问题,就是经常在从dayReportView中取数据放到dayReportDetail中时会报错,原因是dayReportDetail还没有被创建。如果在dayReportDetail的creationComplete函数中放数据,那么在只能在刚创建时放置一次。尝试了很多办法,后来想到了一个办法,就是监听ViewStack的Change事件。dayReportDetail的creationComplete代码如下:

protected function dayReportDetail_creationCompleteHandler(event:FlexEvent):void
			{
				dayReportDetail.addEventListener("goback",gobackHandler);
				
				dayReportDetail.dayReportId = dayReportView.dayReportId;
			}

ViewStack中的change响应代码:

protected function vsIndex_changeHandler(event:IndexChangedEvent):void
			{
				if(vsIndex.selectedIndex ==2 &&dayReportDetail)
				{
					dayReportDetail.dayReportId = dayReportView.dayReportId;
					Alert.show(dayReportDetail.dayReportId.toString());
				}
				
			}

这些解决了。还有一个问题,就是如何在点击查看按钮时,取得其所在的dataGridColumn的id:

	<mx:DataGridColumn headerText="日报明细" dataField="desc" id="dayItem">
						<mx:itemRenderer>
							<fx:Component>
								<mx:LinkButton label="查看" textAlign="left" click="parentDocument.linkbutton1_clickHandler(data.dayReportId)">
								</mx:LinkButton>
							</fx:Component>
						</mx:itemRenderer>
					</mx:DataGridColumn>
这里改写了button的click传送的参数。 注意:参数里data是指该按钮所在的行记录

click响应事件代码:

public function linkbutton1_clickHandler(id:int):void{
				this.dayReportId = id;
				var ditemObject:Event = new Event("dayReportDetail");
				this.dispatchEvent(ditemObject);
				
			}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读