访问itemRenderer中的XML节点 [Bindable]public var headingData1:Object=new Object(); 私有函数getHeadings(evt:ResultEvent):void{ //show(xmlData.toString()); xmlData=evt.result; headingData1=xmlData.root.CIT; }
组合框作为Flex Advanced Datagrid中的itemRenderer访问itemRenderer中的XML节点 [Bindable]public var headingData1:Object=new Object(); 私有函数getHeadings(evt:ResultEvent):void{ //show(xmlData.toString()); xmlData=evt.result; headingData1=xmlData.root.CIT; },xml,apache-flex,Xml,Apache Flex,组合框作为Flex Advanced Datagrid中的itemRenderer [Bindable]public var headingData1:Object = new Object(); <mx:HTTPService id="srv" url="components.xml" resultFormat="object" result="getHeadings(event);"/> private function getHeadings(evt:ResultEvent
[Bindable]public var headingData1:Object = new Object();
<mx:HTTPService id="srv" url="components.xml" resultFormat="object" result="getHeadings(event);"/>
private function getHeadings(evt:ResultEvent):void{
//Alert.show(xmlData.toString());
xmlData = evt.result;
headingData1 = xmlData.root.CIT;
}
<CIT id="1" name="CIT" projectname="CSI" projectmonth="March" manager="KingKong" description="Hello Kong">
<component number="1" title="Title One">
<link linkname="Excellent" value="5"/>
<link linkname="Very Good" value = "4"/>
<link linkname="Good" value = "3"/>
<link linkname="Fair" value = "2"/>
<link linkname="Poor" value = "1"/>
</component>
</CIT>
<?xml version="1.0" encoding="utf-8"?>
<mx:ComboBox dataProvider="{data.link}"
xmlns:mx="http://www.adobe.com/2006/mxml" labelField="@linkname" change="stuffChanged()">
<mx:Script>
<![CDATA[
//skillsDropdownItems
import mx.controls.dataGridClasses.DataGridListData;
import flash.events.Event;
import mx.controls.Alert;
import mx.core.Application;
import mx.collections.ArrayCollection;
override public function set data( value:Object ) : void {
super.data = value;
//this.selectedIndex=data;
//this.selectedIndex=data.link;
}
public function handleDataChanged(event:Event):void {
// Cast listData to DataGridListData.
//var myListData:DataGridListData = DataGridListData(listData);
//var r:int=myListData.rowIndex;
//var c:int=myListData.columnIndex;
// Access information about the data passed
// to the cell renderer.
//this.parentApplication.whateverStuff[c][r]=this.value;
}
public function stuffChanged():void{
//var myListData:DataGridListData = DataGridListData(listData);
//var r:int=myListData.rowIndex;
//var c:int=myListData.columnIndex;
//Application.application.whateverStuff[r+1][c]=this.value;
// Alert.show(this.selectedItem.data);
for(var k in this.selectedItem)
Alert.show(k + " : " + this.selectedItem[k]);
}
]]>
</mx:Script>
<!--</mx:NumericStepper>-->
</mx:ComboBox>
我需要在组合框中获取linkname值
我的高级数据网格
[Bindable]public var headingData1:Object = new Object();
<mx:HTTPService id="srv" url="components.xml" resultFormat="object" result="getHeadings(event);"/>
private function getHeadings(evt:ResultEvent):void{
//Alert.show(xmlData.toString());
xmlData = evt.result;
headingData1 = xmlData.root.CIT;
}
<CIT id="1" name="CIT" projectname="CSI" projectmonth="March" manager="KingKong" description="Hello Kong">
<component number="1" title="Title One">
<link linkname="Excellent" value="5"/>
<link linkname="Very Good" value = "4"/>
<link linkname="Good" value = "3"/>
<link linkname="Fair" value = "2"/>
<link linkname="Poor" value = "1"/>
</component>
</CIT>
<?xml version="1.0" encoding="utf-8"?>
<mx:ComboBox dataProvider="{data.link}"
xmlns:mx="http://www.adobe.com/2006/mxml" labelField="@linkname" change="stuffChanged()">
<mx:Script>
<![CDATA[
//skillsDropdownItems
import mx.controls.dataGridClasses.DataGridListData;
import flash.events.Event;
import mx.controls.Alert;
import mx.core.Application;
import mx.collections.ArrayCollection;
override public function set data( value:Object ) : void {
super.data = value;
//this.selectedIndex=data;
//this.selectedIndex=data.link;
}
public function handleDataChanged(event:Event):void {
// Cast listData to DataGridListData.
//var myListData:DataGridListData = DataGridListData(listData);
//var r:int=myListData.rowIndex;
//var c:int=myListData.columnIndex;
// Access information about the data passed
// to the cell renderer.
//this.parentApplication.whateverStuff[c][r]=this.value;
}
public function stuffChanged():void{
//var myListData:DataGridListData = DataGridListData(listData);
//var r:int=myListData.rowIndex;
//var c:int=myListData.columnIndex;
//Application.application.whateverStuff[r+1][c]=this.value;
// Alert.show(this.selectedItem.data);
for(var k in this.selectedItem)
Alert.show(k + " : " + this.selectedItem[k]);
}
]]>
</mx:Script>
<!--</mx:NumericStepper>-->
</mx:ComboBox>
观察:为什么要将headingData1实例化为对象?您正在向它提供一个XML,因此它应该被类型化为XML 这可能是您唯一的实际问题:
headingData1=xmlData.root.CIT
可能需要是headingData1=xmlData.root.CIT[0]
(在使用XML时,我必须经常这样做,这与E4X的工作方式有关,甚至在该级别只有一个节点的情况下似乎也会使用XMLList。我听过其他解释,但这对我来说是有意义的。)它不起作用,组合框在Advanced Datagrid中。组合框显示什么?什么都没有,它甚至不会加载到Advanced Datagrid中。我还更新了我的高级DataGrid代码它在第四行(备注/评论/改进区域)是否显示正确的值?如果是,请参阅我的更新代码-更改了数据提供程序。这只是一个文本输入,在这里输入,现在我将组合框中的值作为对象对象获取。但不是预期的值。