折腾一下午做这个功能,一直报错,包含在潜入在DataGridColumn里的Combox所使用的dataprovider绑定的变量,或是使用的event方法都不能被识别定义。
后来借鉴了下面这个例子,终于意识到是namespace的原因。修改后终于成功:
注意变量定义
[Bindable]
public var availableMarketGroups:ArrayCollection;
引用时的namespace
Application.application.availableMarketGroups
嵌入的import语句
<mx:Script> <![CDATA[ import mx.core.Application; ]]> </mx:Script>
<mx:TitleWindow width="514" height="445" layout="absolute" horizontalAlign="center" verticalAlign="middle" horizontalCenter="0"
verticalCenter="-51" fontFamily="Arial" fontSize="12" id="marketGroupAdminPanel" title="Market Group Administration"
creationComplete="onGroupAdminWindowCreated(event)">
<mx:DataGrid id="marketGroupList" allowMultipleSelection="true" horizontalScrollPolicy="auto"
editable="true" verticalAlign="middle"
name="Restricted Market and Group List"
textAlign="left" left="59" bottom="29" fontSize="12"
fontFamily="Arial" right="68"
verticalScrollPolicy="auto"
creationComplete="marketGroupListCreationComplete(event)"
dataProvider="{getRestrictedMarketGroupInfosResult.lastResult}"
itemRollOver="lastRollOverIndex = event.rowIndex"
contextMenu="{cmMarketGroupInfoListContextMenu}" top="44" tabIndex="4" >
<mx:columns>
<mx:DataGridColumn headerText="Market Name" dataField="marketName" editable="false"/>
<mx:DataGridColumn headerText="Group Name" dataField="marketGroupName" editable="true" itemEditor="{groupsDropDownComponent}">
<mx:itemRenderer>
<mx:Component id="groupsDropDownComponent">
<mx:Box width="100%" height="100%">
<mx:ComboBox dataProvider="{Application.application.availableMarketGroups}" labelField="marketGroupName">
<mx:Script>
<![CDATA[
import mx.core.Application;
]]>
</mx:Script>
</mx:ComboBox>
</mx:Box>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
<mx:Button x="58" y="10" label="Create New Market Group" id="createMarketGroup" click="createMarketGroup_clickHandler(event)"/>
</mx:TitleWindow>
下面是转载的例子,从网上抓的,原址就不贴了
flex的DataGrid中使用ComboBox来实现
<?xml version= "1.0 " encoding= "utf-8 "?>
<mx:Application xmlns:mx= "http://www.adobe.com/2006/mxml " layout= "absolute " fontFamily= "宋体 " fontSize= "12 " width= "424 " height= "396 ">
<mx:Script>
<![CDATA[
import mx.controls.*;
import mx.core.Application;
import mx.controls.dataGridClasses.*;
private var DataGrid1:DataGrid
[Bindable]
public var dataArr2:Array = [{id:1,name: "铅笔 ",price:100,count: "第2次 "},
{id:2,name: "毛笔 ",price:50,count: "第2次 "},
{id:3,name: "钢笔",price:333,count: "第3次 "}]
[Bindable]
public var dataArr:Array = new Array({label: "第1次 ", data: "1 "},{label: "第2次 ", data: "2 "},
{label: "第3次 ", data: "3 "}, {label: "第4次 ", data: "4 "});
[Bindable]
public var s:int = 2;
]]>
</mx:Script>
<mx:Component id= "myComponent ">
<mx:ComboBox x= "179 " y= "1 " width= "67 " dataProvider= "{Application.application.dataArr} " selectedIndex= "{Application.application.s} ">
<mx:Script>
<![CDATA[
import mx.core.Application;
]]>
</mx:Script>
</mx:ComboBox>
</mx:Component>
<mx:DataGrid id= "DataGrid2 " editable= "true " dataProvider= "{Application.application.dataArr2} " y= "200 " x= "10 ">
<mx:columns>
<mx:DataGridColumn headerText= "序号 " dataField= "id " editable= "false "/>
<mx:DataGridColumn headerText= "名称 " dataField= "name "/>
<mx:DataGridColumn headerText= "价格 " dataField= "price " editorDataField= "value " editable= "false ">
<mx:itemRenderer>
<mx:Component>
<mx:NumericStepper maximum= "1000 " minimum= "10 ">
</mx:NumericStepper>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText= "数量 " dataField= "count " editable= "true " editorDataField= "text " itemEditor= "{myComponent} "/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
437

被折叠的 条评论
为什么被折叠?



