Hi All,

I'm using a comboBox as an itemRenderer in a DataGrid's DataGridColumn.
I'm also using the same itemRenderer as the editor and have set the
rendererIsEditor to true.

My problem is in initializing the comboBox to use the original value
specified by the dataProvider and not the first option in the combobox.
(which may or may not be the actual value) I've pasted a simple example
to see if someone can point out what I'm doing wrong. I've found
cellRenderers (for the AS3 UI components in Flash) and itemRenderers in
Flex to be a tricky subject. Flex has been easier to implement overall
though.

I'd like to see more examples of these using all the various types of
standard components (and comboboxes specifically :-) in the next version
of the documentation.

The main application file (which i based on a code sample from the
docs):

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute">
      <mx:Script>
         <![CDATA[
             import mx.collections.ArrayCollection;
             [Bindable]
             private var myDP:ArrayCollection = new ArrayCollection([
                 {Name: 'Item 1', Number: '10000', Type: 'alpha' },
                 {Name: 'Item 2', Number: '10000', Type: 'beta' }
             ]);
         ]]>
     </mx:Script>

     <mx:DataGrid id="myGrid"
         dataProvider="{myDP}"
         editable="true"
         width="100%" >
         <mx:columns>
             <mx:DataGridColumn dataField="Name"/>
             <mx:DataGridColumn dataField="Number"/>
             <mx:DataGridColumn dataField="Type"
                 headerText="Type"
                 rendererIsEditor="true"
                 itemRenderer="mxmlcomponents.TypeComboBoxRenderer"
                 editorDataField="newType"
                 editorXOffset="5"
                 editorYOffset="0">
             </mx:DataGridColumn>
         </mx:columns>
     </mx:DataGrid>
</mx:WindowedApplication>

The mxml component I'm using:

<?xml version="1.0" encoding="utf-8"?>
<!-- mxmlcomponents/TypeComboBoxRenderer.mxml -->
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"; >
    <mx:Script>
         <![CDATA[
             // Define a property for returning the new value to the
cell.
             [Bindable]
             public var newType:String;
         ]]>
     </mx:Script>

     <mx:ComboBox id="contactCombo"
         change="newType=contactCombo.selectedLabel;">
         <mx:ArrayCollection>
             <mx:String>alpha</mx:String>
             <mx:String>beta</mx:String>
         </mx:ArrayCollection>
     </mx:ComboBox>
</mx:VBox>

Reply via email to