Flex中NavigatorContent的通信以及itemRenderer对dataGridColumn的访问

今天遇到了麻烦,我企图在两个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);
				
			}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值