如何根据另一个项目渲染器(相同数据网格但不同列)设置数据网格列的一个项目渲染器的数据提供程序?
我在数据网格的两个不同列上有两个项目渲染器。两者都是组合框。我在这里想做的是根据第一个组合框中项目的选择设置第二个组合框的数据提供者。但是我怎样才能让第二个 itemrenderer 知道第一个 itemrenderer 中选择的项目是什么?
这是代码
<mx:DataGridColumn id="deptCol" headerText="Department" width="300">
<mx:itemRenderer>
<mx:Component>
<mx:HBox width="100%" height="100%" horizontalAlign="center">
<mx:ComboBox id="cmbBox1" dataProvider="{XML(data).d.@department_description}" />
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn id="deptCol" headerText="Department" width="300">
<mx:itemRenderer>
<mx:Component>
<mx:HBox width="100%" height="100%" horizontalAlign="center">
<mx:ComboBox id="cmbBox2" dataProvider="{<some DataProvider Based on Selection of cmbBox1> ?? **HOW TO SET IT**}" />
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
I have two item renderers on 2 different columns of a datagrid. Both are combo box. What I am trying to do here is set dataprovider of second combobox based on selection of item in firxt combobox. But how could I let the second itemrenderer know what is the item selected in first one?
Here is the code
<mx:DataGridColumn id="deptCol" headerText="Department" width="300">
<mx:itemRenderer>
<mx:Component>
<mx:HBox width="100%" height="100%" horizontalAlign="center">
<mx:ComboBox id="cmbBox1" dataProvider="{XML(data).d.@department_description}" />
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn id="deptCol" headerText="Department" width="300">
<mx:itemRenderer>
<mx:Component>
<mx:HBox width="100%" height="100%" horizontalAlign="center">
<mx:ComboBox id="cmbBox2" dataProvider="{<some DataProvider Based on Selection of cmbBox1> ?? **HOW TO SET IT**}" />
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,我使用间接技术让它工作...使用 XML 列表作为数据提供者,并在每个级别添加另一个名为“IsSelected”的属性,并在从第一个组合框进行选择后将其默认为 0(以及每个级别的唯一 id)我设置了相应的“IsSelected”= 1...因此,一项渲染器所做的更改可供另一项渲染器使用。无需告诉一方使用唯一的 ID 识别了另一方。
Well I got it to work using indirect technique... Used XML list as data provider and added another attribute at each level named "IsSelected" and defaulted it to 0 (along with unique ids for each level) after the selection from first compbo box I set the corresponding "IsSelected" = 1...Changes made by one item Renderer were thus available to another. Need not to tell one identified the other using unique ids.