get set 方法问题

Azrael99999 2011-02-17 05:55:21
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:other="net.carefx.presentation.component.other.*"
width="500"
height="300"
layout="vertical"
showCloseButton="true"
close="PopUpManager.removePopUp(this)">
<mx:Script>
<![CDATA[
import net.carefx.presentation.model.vo.ItemRelationVO;
import net.carefx.presentation.control.events.domain.ItemEvent;
import net.carefx.persistence.domain.ItemRelation;
import net.carefx.persistence.domain.Item;
import mx.controls.Alert;
import mx.collections.ArrayCollection;
import mx.managers.PopUpManager;

private var _item:Item;

[Bindable]
public var parentItemAC:ArrayCollection=new ArrayCollection();

public var isEdit:Boolean=false;

public function set item(item:Item):void
{
_item=item;
this.title=item.name;
for each (var itemRelation:ItemRelation in item.parentItems)
{
parentItemAC.addItem(itemRelation.parentItem);
}
}

public function get item():Item
{
return _item;
}

private function eAddParentItem():void
{
if (cParentItemSuggest.selectedItem)
{
var flag:Boolean=true;
for each (var item:Item in parentItemAC)
{
if (cParentItemSuggest.selectedItem.id == item.id)
{
flag=false;
break;
}
}
if (flag)
{
var itemRelationVO:ItemRelationVO=new ItemRelationVO();
itemRelationVO.parentItem=cParentItemSuggest.selectedItem as Item;
itemRelationVO.childItem=item;
isEdit=true;
new ItemEvent(ItemEvent.ADD_ITEM_RELATION, itemRelationVO).dispatch();
parentItemAC.addItem(cParentItemSuggest.selectedItem);
}
else
{
Alert.show("("+cParentItemSuggest.selectedItem.name + ")项目已添加!", "提示");
}
}
else
{
Alert.show("先查询上级项目!", "提示");
}
}
]]>
</mx:Script>
<mx:DataGrid id="cParentItemDG"
dataProvider="{parentItemAC}"
width="100%"
height="100%"
minWidth="400">
<mx:columns>
<mx:DataGridColumn headerText="项目"
dataField="name"/>
<mx:DataGridColumn width="40">
<mx:itemRenderer>
<mx:Component>
<mx:HBox width="100%"
height="100%"
horizontalAlign="center"
horizontalGap="0">
<mx:Script>
<![CDATA[
import net.carefx.persistence.domain.Item;
import net.carefx.presentation.model.vo.ItemRelationVO;
import net.carefx.presentation.control.events.domain.ItemEvent;
import net.carefx.presentation.assets.ImagesAssets;

public function eDeleteBtnClick():void
{
outerDocument.isEdit=true;
var itemRelationVO:ItemRelationVO=new ItemRelationVO();
itemRelationVO.childItem=outerDocument.item;
itemRelationVO.parentItem=data as Item;
outerDocument.parentItemAC.removeItemAt(outerDocument.parentItemAC.getItemIndex(data));
new ItemEvent(ItemEvent.DELETE_ITEM_RELATION,itemRelationVO).dispatch();
}
]]>
</mx:Script>
<mx:LinkButton icon="{ImagesAssets.CANCEL_ICON}"
click="eDeleteBtnClick()"
toolTip="删除"/>
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
<mx:HBox width="100%">
<mx:Label text="项目:"/>
<other:ItemAutoSuggest id="cParentItemSuggest"/>
<mx:Spacer width="100%"/>
<mx:Button label="添加"
click="eAddParentItem()"/>
<mx:Button label="返回"
click="PopUpManager.removePopUp(this)"/>
</mx:HBox>
</mx:TitleWindow>


我用红色标记出来的
第一个 item 为什么 为空
我初始化这个对象的 时候 已经设置了
而且 第一个 item 的 时候 我试过 _item 是有值 的 。。。。为什么会为空
但下面 renderer 里面的 item直接 拿 就不为空。。。。
...全文
28 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
passself 2011-02-18
楼主没有看到你的红色标记,不过set和get和别的语言是一样的用,没有取到就是因为值,没有赋对
回复
相关推荐
发帖
Flex
创建于2007-12-13

4328

社区成员

多媒体/设计 Flex
申请成为版主
帖子事件
创建了帖子
2011-02-17 05:55
社区公告
暂无公告