2010-03-10 121 views
0
[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> 

组合框作为itemRenderer的Flex中先进的Datagrid访问XML节点的itemRenderer

<?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> 

我需要在我的组合框中的链接名称值。

我高级的Datagrid

<mx:AdvancedDataGrid dataProvider="{headingData1.component}" horizontalScrollPolicy="on" verticalScrollPolicy="on" x="10" y="132" width="100%" height="303" id="adg1" designViewDataType="tree"> 
     <mx:columns> 
      <mx:AdvancedDataGridColumn headerText="Sr No" dataField="number"/> 
      <mx:AdvancedDataGridColumn headerText="Parameter" dataField="title"/> 
      <mx:AdvancedDataGridColumn headerText="Feedback" width="170" itemRenderer="com.myClasses.myGridDropdownRenderer"/> 
      <mx:AdvancedDataGridColumn headerText="Remarks/Comments/Improvement areas" itemRenderer="mx.controls.TextInput" dataField="col3"/> 
     </mx:columns> 
    </mx:AdvancedDataGrid> 

回答

1
<mx:ComboBox dataProvider="{data.link}" 
    xmlns:mx="http://www.adobe.com/2006/mxml" labelField="@linkname"> 
+0

它不工作,组合框在Advanced Datagrid里面 – Kevin 2010-03-10 07:41:35

+0

ComboBox显示什么? – Amarghosh 2010-03-10 07:52:09

+0

什么也没有,它甚至不会加载到高级数据网格中。我还更新了我的高级DataGrid代码 – Kevin 2010-03-10 07:54:30

1

的观察:为什么让实例headingData1为对象?你给它提供一个XML,所以它应该被输入为XML。

这可能是你唯一实际的问题: headingData1 = xmlData.root.CIT可能需要headingData1 = xmlData.root.CIT[0](我有一个XML工作时经常这样做,它与E4X如何工作要做,似乎使用的XMLList只有一个,即使我听说过其他的解释,但是这个对我来说很有意义。)

+0

这也行不通...... – Kevin 2010-03-11 09:01:08