如何解决绑定来自datagrid的数据
| 我有一个包含两个数据网格和一个按钮的表单。 Datagrid 1 \“ myStaticDataGrid \”具有我添加的值供用户选择。我希望按钮的click事件将myStaticDataGrid的当前选择发送到第二个数据网格\“ myDataGrid \”。如果我使用文本框和数据网格,则能够完成此操作,但是我找不到合适的语法来从myStaticDataGrid抓取选择数据时遇到麻烦。 这是我尝试使用两种数据网格方法:<s:Form id=\"myForm\">
//The values from this grid are determined once the button is clicked.
<s:FormItem id=\"myDataGrid\">
<s:DataGrid id=\"bdgFormData\">
<s:typicalItem>
<s:DataItem formData=\"Description\" xmlData=\"Value\"/>
</s:typicalItem>
<s:ArrayCollection id=\"values\"> </s:ArrayCollection>
</s:DataGrid>
</s:FormItem>
//The values from this grid are determined at runtime.
<s:FormItem id=\"myStaticDataGrid\">
<s:DataGrid id=\"userSelects\">
<s:typicalItem>
<s:DataItem selects=\"Typical Item\" codes=\"0000\"/>
</s:typicalItem>
<s:ArrayCollection id=\"selects\">
<s:DataItem selects=\"Y\" codes=\"1\"/>
<s:DataItem selects=\"N\" codes=\"0\"/>
</s:ArrayCollection>
</s:DataGrid>
</s:FormItem>
<s:FormItem label=\"Add Selects\">
<s:Button label=\"Go\" click=\"addData(event)\"/>
</s:FormItem>
我的AS事件发送数据:
protected function addData(event:MouseEvent):void
{
//Put selected data at the top of the grid.
items.addItemAt(lstFormData.typicalItem,0)
}
我的问题是在哪里绑定网格数据?
这是我将文本框数据发送到datagrid的方法:
<s:FormItem label=\"myDataUtil\">
<s:Label text=\"Value\"/>
<s:TextInput text=\"@{lstFormData.typicalItem.formData}\"/>
</s:FormItem>
解决方法
不幸的是,我为您准备了此功能,这里我只有flex 3,因此您将必须根据需要进行转换,但是您应该了解它的工作原理。
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<mx:Application xmlns:mx=\"http://www.adobe.com/2006/mxml\" layout=\"absolute\" creationComplete=\"init()\">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
public var originalData:ArrayCollection
[Bindable]
public var changingData:ArrayCollection;
public function init( ):void{
this.changingData = new ArrayCollection( )
this.originalData = new ArrayCollection( )
for( var i:int = 0;i<100;i++){
var obj:Object = new Object( )
obj.label = \'slot \'+ i;
obj.value = \'s\'+i;
originalData.addItem( obj );
}
}
public function onSelect( e:Event ):void{
this.changingData.addItem(( e.currentTarget as DataGrid).selectedItem )
}
]]>
</mx:Script>
<mx:DataGrid id=\"myStaticDataGrid\" dataProvider=\"{originalData}\" click=\"onSelect(event)\"/>
<mx:DataGrid id=\"bdgFormData\" dataProvider=\"{changingData}\" x=\"240\" y=\"0\"/>
</mx:Application>
这是一个没有绑定数据的示例
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<mx:Application xmlns:mx=\"http://www.adobe.com/2006/mxml\" layout=\"absolute\" >
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
public function onSelect( e:Event ):void{
var targetProvider:ArrayCollection = ( bdgFormData.dataProvider as ArrayCollection )
if( !targetProvider ){
targetProvider = new ArrayCollection()
}
targetProvider.addItem(( e.currentTarget as DataGrid).selectedItem )
bdgFormData.dataProvider = targetProvider
}
]]>
</mx:Script>
<mx:DataGrid id=\"myStaticDataGrid\" click=\"onSelect(event)\" >
<mx:dataProvider>
<mx:ArrayCollection >
<mx:Object label=\"AIR\" />
<mx:Object label=\"ColdFusion\" />
<mx:Object label=\"Dreamweaver\" />
<mx:Object label=\"Flash\" />
<mx:Object label=\"Flex\" />
<mx:Object label=\"Photoshop\" />
</mx:ArrayCollection>
</mx:dataProvider>
</mx:DataGrid>
<mx:DataGrid id=\"bdgFormData\" x=\"240\" y=\"0\"/>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。