Close enough to what I'm doing, and your example is just what I needed
to see to open my eyes.

Thanks a bunch!
 
--- In [email protected], "Doug Lowder" <[EMAIL PROTECTED]> wrote:
>
> Is what you're trying to do similar to what the Change button does 
> in the example app below?  If it is but you still can't get your app 
> to work, maybe there's a mismatch with the data somewhere (I know 
> this is the case in the example, which is why the button is able to 
> reset the combobox value, but a selection made directly from the 
> combobox won't stick).
> 
> - Doug
> 
> Example app:
> ------------
> <?xml version="1.0" encoding="utf-8"?>
> 
> <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml"; 
> width="100%" height="100%">
> 
>     <mx:Script>
> 
>         <![CDATA[
>             var aryLoc: Array = [{state: "CA"}, {state: "CO"}, 
> {state: "CT"}];
> 
>             function updateStateCbx(): Void {
>                 dgLocationInfo.dataProvider.editField
> (2, "state", "WA");
>             }
>        ]]>
> 
>     </mx:Script>
> 
>     <mx:DataGrid id="dgLocationInfo" width="90%" editable="true" 
> dataProvider="{aryLoc}" rowCount="5">
>         <mx:columns>
>             <mx:Array>
>                 <mx:DataGridColumn headerText="State" 
> columnName="LocState"
>                     editable="false" cellRenderer="StateRenderer" 
> width="120"/>
>             </mx:Array>
>         </mx:columns>
>     </mx:DataGrid>
> 
>     <mx:Button label="Change ''CT'' to ''WA''" click="updateStateCbx
> ()"/>
> 
> </mx:Application>
> -----------------------------------------------
> 
> --- In [email protected], "mrvinedit" <owner@> wrote:
> >
> > Thanks Doug, but for some reason that's not working for me.
> > 
> > --- In [email protected], "Doug Lowder" <douglowder@> 
> wrote:
> > >
> > > Hi,
> > > 
> > > In function updateStateCbx(), try calling the following: 
> > > dgLocationInfo.dataProvider.editField(selIdx, "data", 
> selState).  
> > > The grid should notice the change to the dataprovider and cause 
> your 
> > > cell renderer to automatically update the combobox.
> > > 
> > > Regards,
> > > Doug
> > > 
> > > 
> > > --- In [email protected], "mrvinedit" <owner@> wrote:
> > > >
> > > > I'm passing in selIdx and selState variables from another mxml 
> not
> > > > shown here, but suffice to say my alert is showing the correct 
> data
> > > > for the index of the state and the state's data. For some 
> reason 
> > > (must
> > > > be my code :-) the datagrid-embedded combobox is not changing 
> the
> > > > state that's coming in from my data. Suggestions?
> > > > 
> > > > Grid.mxml:
> > > > 
> > > > <mx:Script>
> > > > <![CDATA[
> > > >   function updateStateCbx(selIdx,selState): {
> > > >     mx.controls.Alert.show(selIdx + ': ' + selState);
> > > >     dgLocationInfo.selectedItem.LocState.editField
> (selIdx, "data",
> > > > selState);
> > > >   }
> > > > ]]>
> > > > </mx:Script>
> > > >         
> > > > <mx:DataGrid id="dgLocationInfo" width="90%" editable="true"
> > > > dataProvider="{aryLoc}" rowCount="5"
> > > > change="updateGridRowModel
> > > 
> (dgLocationInfo.selectedItem.LocNum,dgLocationInfo.selectedItem.LocAd
> > > 
> dr,dgLocationInfo.selectedItem.LocZip,dgLocationInfo.selectedItem.Loc
> > > City,dgLocationInfo.selectedItem.LocState)">
> > > >   <mx:columns>
> > > >     <mx:Array>
> > > >       <mx:DataGridColumn headerText="State" 
> columnName="LocState"
> > > > editable="false" cellRenderer="StateRenderer" width="120"/>
> > > >     </mx:Array>
> > > > </mx:DataGrid>
> > > > 
> > > > StateRenderer:
> > > > 
> > > > import mx.controls.ComboBox;
> > > > 
> > > > class StateRenderer extends mx.core.UIComponent {
> > > > 
> > > >         var comboDP:Array = [{label:"Alabama", data:"AL"}, 
> > > {label:"Alaska",
> > > > data:"AK"}, {label:"Arizona", data:"AZ"}, {label:"Arkansas",
> > > > data:"AR"}, {label:"California", data:"CA"}, {label:"Colorado",
> > > > data:"CO"}, {label:"Connecticut", data:"CT"}, 
> {label:"Delaware",
> > > > data:"DE"}, {label:"Florida", data:"FL"}, {label:"Georgia",
> > > > data:"GA"}, {label:"Hawaii", data:"HI"}, {label:"Idaho", 
> > > data:"ID"},
> > > > {label:"Illinois", data:"IL"}, {label:"Indiana", data:"IN"},
> > > > {label:"Iowa", data:"IA"}, {label:"Kansas", data:"KS"},
> > > > {label:"Kentucky", data:"KY"}, {label:"Louisiana", data:"LA"},
> > > > {label:"Maine", data:"ME"}, {label:"Maryland", data:"MD"},
> > > > {label:"Massachusetts", data:"MA"}, {label:"Michigan", 
> data:"MI"},
> > > > {label:"Minnesota", data:"MN"}, {label:"Mississippi", 
> data:"MS"},
> > > > {label:"Missouri", data:"MO"}, {label:"Montana", data:"MT"},
> > > > {label:"Nebraska", data:"NE"}, {label:"Nevada", data:"NV"},
> > > > {label:"New Hampshire", data:"NH"}, {label:"New Jersey", 
> > > data:"NJ"},
> > > > {label:"New Mexico", data:"NM"}, {label:"New York", data:"NY"},
> > > > {label:"North Carolina", data:"NC"}, {label:"North Dakota",
> > > > data:"ND"}, {label:"Ohio", data:"OH"}, {label:"Oklahoma", 
> > > data:"OK"},
> > > > {label:"Oregon", data:"OR"}, {label:"Pennsylvania", data:"PA"},
> > > > {label:"Rhode Island", data:"RI"}, {label:"South Carolina",
> > > > data:"SC"}, {label:"South Dakota", data:"SD"}, 
> {label:"Tennessee",
> > > > data:"TN"}, {label:"Texas", data:"TX"}, {label:"Utah", 
> data:"UT"},
> > > > {label:"Vermont", data:"VT"}, {label:"Virginia", data:"VA"},
> > > > {label:"Washington", data:"WA"} ];
> > > >         var combo;
> > > >         var listOwner : MovieClip;
> > > >         var getCellIndex : Function;
> > > >         var getDataLabel : Function;
> > > >         
> > > >         function createChildren(Void) : Void {
> > > >                 combo = createClassObject( ComboBox, "combo", 1, 
> > > {owner:this, _x:1});
> > > >                 combo.dataProvider = comboDP;
> > > >                 combo.addEventListener("change", this);
> > > >         }
> > > >         
> > > >         function getPreferredHeight(Void) : Number{
> > > >                 return combo != undefined ? 18:0;
> > > >         }
> > > >         
> > > >         function getPreferredWidth(Void) : Number{
> > > >                 return combo != undefined ? 100:0;
> > > >         }
> > > > 
> > > >         function setValue(str:String, item:Object) {
> > > >                 var val = item.state;
> > > >                 for(var i = 0; i < combo.dataProvider.length; i++) {
> > > >                         combo.dataProvider[i].data == val ? 
> > > combo.selectedIndex = i : '';
> > > >                 }
> > > >         }
> > > >         
> > > >         function change() {
> > > >                 listOwner.editField(getCellIndex().itemIndex, 
> > > getDataLabel(),
> > > > combo.selectedItem.data);
> > > >                 listOwner.selectedIndex = getCellIndex().itemIndex;
> > > >         }
> > > > }
> > > >
> > >
> >
>






--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to