2010-07-19 131 views
1

我有一个数据网格,其中一列调用一个自定义itemEditor像;Flex:将一个参数传递给itemEditor

    <mx:DataGridColumn dataField="city" 
             width="150" 
             headerText="City" 
             itemEditor="components.ComboCity" 
             editorDataField="city"/> 

而我的自定义itemEditor看起来像;

<?xml version="1.0" encoding="utf-8"?> 
    <s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx" 
           focusEnabled="true"> 
     <mx:ComboBox id="comboBox"/> 
     <fx:Script> 
      <![CDATA[ 
       public var myString:String; 
       . 
       . 
       . 

我该如何从我的主应用程序传递一个值到myString

回答

1

对我来说,最好的解决办法:

<mx:Script> 
    <![CDATA[ 

     import mx.events.DataGridEvent; 

     private function itemEditorCreateHandle(event:DataGridEvent):void 
     {    
      ComboCity(DataGrid(event.target).itemEditorInstance).myString = "Put here the value"; 
     } 

    ]]> 
</mx:Script> 

<mx:DataGridColumn  
    dataField="city" 
    width="150" 
    headerText="City" 
    itemEditor="components.ComboCity" 
    itemEditorCreate="itemEditorCreateHandle(event);" 
    editorDataField="city"/>