社区
Flex
帖子详情
两个itemRenderer之间如何传值?
lzp4881
2008-12-30 05:33:25
datagrid中有两个itemRenderer,都是ComboBox,当前一个ComboBox改变后,如何把值传给后一个ComboBox?
就象省市联动这样的,当选择了省后后面的市就跟着变化。
谁能请给个例子,记住这两个ComboBox不能放到一个itemRenderer里面,放到一个itemRenderer里我会,我就想知道它们分别放的时候应该怎么弄。
...全文
459
8
打赏
收藏
两个itemRenderer之间如何传值?
datagrid中有两个itemRenderer,都是ComboBox,当前一个ComboBox改变后,如何把值传给后一个ComboBox? 就象省市联动这样的,当选择了省后后面的市就跟着变化。 谁能请给个例子,记住这两个ComboBox不能放到一个itemRenderer里面,放到一个itemRenderer里我会,我就想知道它们分别放的时候应该怎么弄。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lixianyi08
2009-02-16
打赏
举报
回复
学习学习啦
xxcn2007
2009-02-02
打赏
举报
回复
自定义事件
ivinkoo
2009-02-02
打赏
举报
回复
谢谢!
ivinkoo
2009-02-02
打赏
举报
回复
大哥 你这个问题解决没啊!
小弟也遇到了这样的问题。
能否把相关代码 发到我邮箱 gwznet@qq.com
herowach
2008-12-31
打赏
举报
回复
理论上是改变改变绑定的数据源dataProvider,被修改的所有Renderer也会变化,但实际上是dataProvider被修改而页面没刷新,也就是只有一个Renderer执行了set data,另外一个并没有执行,我以前做过的是TileList里要改一个另一个Renderer也要变的情况,刷新问题测试了好久,当时是通过
tl.dataProvider = null;
tl.validateNow();
tl.dataProvider = data;
这样实现的,因为发现改变dataProvider并没有刷新,只有指向null后重新再赋才会全部刷新,你可以选试试,如果遇到可以尝试下。
lzp4881
2008-12-31
打赏
举报
回复
我的源代码是这样的,datagrid是一个可编辑的空表格,绑定了一个空的ArrayCollection,当点击添加的时候往ArrayCollection里面添加一个空行,然后再往表格里填写内容,其中有两项要用ComboBox进行选择,所以用了两个itemRenderer。
mail.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
[Bindable] private var applyData : ArrayCollection = new ArrayCollection();
private function addHandler():void {
var obj:Object = new Object();
obj.applyName='';
obj.applyModel='';
obj.amount=0;
obj.unitPrice=0;
obj.money=0;
applyData.addItem(obj);
}
]]>
</mx:Script>
<mx:Button label="添加一行" click="addHandler()" />
<mx:DataGrid id="applyGrid" dataProvider="{applyData}" height="150" width="720" editable="true" >
<mx:columns>
<mx:DataGridColumn headerText="品牌" dataField="applyName" itemRenderer="applyNameRender" editable="false" />
<mx:DataGridColumn headerText="型号" dataField="applyModel" itemRenderer="applyModelRender" editable="false" />
<mx:DataGridColumn headerText="数量" dataField="amount" editable="true" width="50" />
<mx:DataGridColumn headerText="单价" dataField="unitPrice" editable="false" width="80" />
<mx:DataGridColumn headerText="金额" dataField="money" editable="false" width="80"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
applyNameRender.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" creationComplete="getStuff.send()" >
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
private function resultHandler():void {
this.data.applyName = stuff.selectedItem.col1;
}
private function changeHandler():void {
this.data.applyName = stuff.selectedItem.col1;
var obj:Object = new Object();
obj.stuff = stuff.selectedItem.col1;
parentDocument.getStuffModel.send(obj);
}
]]>
</mx:Script>
<mx:HTTPService id="getStuff" useProxy="false" url="service/getStuff.asp" result="resultNameHandler()"/>
<mx:ComboBox id="stuff" dataProvider="{getStuff.lastResult.item.datalist}" selectedIndex="0" labelField="col1"
change="changeHandler()" rowCount="15" width="100%"/>
</mx:HBox>
applyModelRender.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%">
<mx:Script>
<![CDATA[
private function changeHandler():void {
this.data.model = stuffModel.selectedItem.col1;
this.data.unitPrice = stuffModel.selectedItem.col2;
parentDocument.data.itemUpdated();
}
]]>
</mx:Script>
<mx:HTTPService id="getStuffModel" useProxy="false" method="POST" url="service/getStuffModel.asp" >
<mx:request>
<Stuff>{stuff.selectedItem.col1}</Stuff>
</mx:request>
</mx:HTTPService>
<mx:ComboBox id="stuffModel" dataProvider="{getStuffModel.lastResult.item.datalist}" selectedIndex="0" labelField="col1"
rowCount="15" change="changeHandler()" width="100%"/>
</mx:HBox>
现在关键是当选择了applyNameRender后怎么把值传给applyModelRender里面的<Stuff>{stuff.selectedItem.col1}</Stuff>并且激活getStuffModel.send(),让它重新到后台程序取数据
不会飞的鱼
2008-12-30
打赏
举报
回复
楼上说的对,
数据绑定
自定义事件
xxcn2007
2008-12-30
打赏
举报
回复
数据绑定
自定义事件
Flex
item
Renderer
的详细教程
详细介绍Flex的项目呈现器的各种初级用法以及高级用法,相当实用。
flex4做的
item
renderer
呈现器
用FLEX4做的项呈现器,仿雅虎聊天界面。 需要的字段为userId、nikeName、sex…… 你可以自行添加 声明,次呈现器只做模版使用。
flex中的渲染器(
item
renderer
)
flex中经常会使用到渲染器,这里简要介绍一下渲染器的一些知识
理解_Flex_
item
Renderer
.pdf
关于flex的
item
Renderer
的介绍,还算比较详细。
理解 Flex_
item
Renderer
理解_Flex_
item
Renderer
理解_Flex_
item
Renderer
理解_Flex_
item
Renderer
Flex
4,328
社区成员
9,091
社区内容
发帖
与我相关
我的任务
Flex
多媒体/设计 Flex
复制链接
扫一扫
分享
社区描述
多媒体/设计 Flex
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章