社区
Flex
帖子详情
两个itemRenderer之间如何传值?
lzp4881
2008-12-30 05:33:25
datagrid中有两个itemRenderer,都是ComboBox,当前一个ComboBox改变后,如何把值传给后一个ComboBox?
就象省市联动这样的,当选择了省后后面的市就跟着变化。
谁能请给个例子,记住这两个ComboBox不能放到一个itemRenderer里面,放到一个itemRenderer里我会,我就想知道它们分别放的时候应该怎么弄。
...全文
496
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
打赏
举报
回复
数据绑定
自定义事件
关于
Item
Renderer
刷新改变值的问题
本文探讨了DataGrid等组件因缓存机制导致的问题及解决方案。详细解释了
Item
Renderer
的缓存原理,并提供了通过重写
Item
Renderer
和使用Bindable属性来解决滚动时数据不同步的方法。
item
renderer
资料小整合
本文介绍了Flex中
Item
Renderer
的概念及其实现原理,并提供多种自定义
Item
Renderer
的方法,包括使用MXML和ActionScript,以及如何提高
Item
Renderer
的性能。
item
Renderer
渲染器
本文详细介绍了
Item
Renderer
的概念及其在Flex中的应用。
Item
Renderer
是用于展示数据的容器,可以自定义以增强数据的表现力。文章还提供了访问
Item
Renderer
和组件
之间
交互的方法。
理解 Flex
item
Renderer
- 第 3 部分: 通信
本文介绍如何在Flex中实现
Item
Renderer
与列表控制
之间
的有效通信,包括动态更改
Item
Renderer
、使用listData属性以及通过事件调度实现通信的方法。
Flex4中list与
item
Renderer
项目渲染器中子对象
之间
访问
本文介绍Flex中的
item
Renderer
概念,解释其作为数据展示形式的作用,并详细阐述如何自定义
item
Renderer
以增强UI表现力,同时提供了代码示例。
Flex
4,328
社区成员
9,103
社区内容
发帖
与我相关
我的任务
Flex
多媒体/设计 Flex
复制链接
扫一扫
分享
社区描述
多媒体/设计 Flex
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章