小弟刚刚学习flex遇到一点问题,请大侠们帮解释

<mx:DataGridid="DataGrid2"editable="true"dataProvider="{dataArr}"y="200"x="10"><mx:Da... <mx:DataGrid id="DataGrid2" editable="true" dataProvider="{dataArr}" y="200" x="10">
<mx:DataGridColumn headerText="类型" dataField="type" editable="false">
<mx:itemRenderer>
<fx:Component>
<mx:HBox>
<mx:ComboBox labelField="combox" id="box">
<mx:dataProvider>
<fx:Array>
<fx:String>一等</fx:String>
<fx:String>二等</fx:String>
<fx:String>三等</fx:String>
</fx:Array>
</mx:dataProvider>
</mx:ComboBox>
</mx:HBox>
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>

<mx:DataGridColumn headerText="类型2" dataField="type2" editable="false" width="150">
<mx:itemRenderer>
<fx:Component>
<mx:PopUpButton creationComplete="treeEvent(event)">
<fx:Script>
<![CDATA[
import mx.controls.Label;
import mx.controls.Tree;
import mx.events.FlexEvent;
private var tree:Tree = new Tree();
public function treeEvent(event:FlexEvent):void
{
tree.width = this.width;
tree.dataProvider = outerDocument.dp;
tree.showRoot = false;
tree.labelField = "@label";
tree.addEventListener(Event.CHANGE,change);
//tree.setStyle("indentation",5);
tree.setStyle("textAlign","left");//在tree中默认的是左对齐,但是嵌套到某些组件里面可能会改变
this.popUp = tree;
this.closeOnActivity = true;
}

private function change(event:Event):void
{
this.label = tree.selectedItem.@label;
}
]]>
</fx:Script>
</mx:PopUpButton>
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:DataGrid>
[Bindable]
public var dataArr:Array = [{id:1,name:"苹果",price:100,count:100},
{id:2,name:"西瓜",price:50,count:200},
{id:3,name:"水蜜桃",price:333,count:50,type3:80}]
<fx:Declarations>
<fx:XML id="dp">
<root>
<folder label="One">
<folder label="One.A">
<item label="One.A.1" />
<item label="One.A.2" />
<item label="One.A.3" />
<item label="One.A.4" />
<item label="One.A.5" />
</folder>
<item label="One.1" />
<item label="One.2" />
</folder>
<folder label="Two">
<item label="Two.1" />
<folder label="Two.A">
<item label="Two.A.1" />
<item label="Two.A.2" />
</folder>
</folder>
</root>
</fx:XML>
</fx:Declarations>
代码如上,怎么才能获得嵌入DataGrid中下拉框和tree当前选中的值
由于小弟积分有限,把全部家当都拿出来了,还望大虾帮忙,小弟在此谢谢了!
展开
 我来答
匿名用户
2012-05-03
展开全部
flex中的List,DG等控件都是基于数据源的。当你对某一项做改变的时候,直接对数据源进行修改,然后在外面就可以通过数据源得到修改之后的值。
在本例中,可以在treeEvent()里面,直接记录修改之后的值(data.type2=tree.selectedItem.@label,大概是这意思,不一定符合你的业务逻辑)
注:此处data扩展自IDataRenderer接口,大部分flex3的控件都扩展了这个接口。它的作用是保存dg中该行的数据,即dataProvider中的对应行。

同样的,上面的下拉框也可以做类似的修改
310705030114
2012-05-06 · 超过73用户采纳过TA的回答
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:184万
展开全部
ComboBox你可以监听他的change事件,把selectItem设到data里面(每个itemRenderer都有个data值的),
protected function changeHandler():void
{
data.level = box.selectedItem;
}
tree也可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式