Thanks, Tim and Tracy. I've started to explore/experiment more based on your feedback. I'll play with it more tonight and let you know what I come up with. Thanks, again!
Bruce --- In flexcoders@yahoogroups.com, "Tim Hoff" <[EMAIL PROTECTED]> wrote: > > > Hi Bruce, > > I've been trying to figure this one out. As Tracy suggests, you could > put something like this in the itemRenderer component? I'm not sure, > however, how to associate the itemEditorInstance with the itemRenderer > instance. This might get you a little closer. > > -TH > > <mx:Script> > <![CDATA[ > > import mx.core.Application; > import mx.events.DataGridEvent; > > public function init():void // creationComplete of the itemRenderer > { > > Application.application.myGrid.addEventListener (DataGridEvent.ITEM_EDIT_\ > BEGIN, showResetState); > > Application.application.myGrid.addEventListener (DataGridEvent.ITEM_EDIT_\ > END, showDefaultState); > } > > public function showResetState(event:DataGridEvent):void > { > // not sure exactly how, but you probably have to check here > to see if the itemEditorInstance relates to this > // itemRenderer instance. Something like if (this = > event.itemRenderer) {} ??? > currentState = 'showReset'; > } > > public function showDefaultState(event:DataGridEvent):void > { > currentState = ''; > } > > ]]> > </mx:Script> > > --- In flexcoders@yahoogroups.com, "Tracy Spratt" <tspratt@> wrote: > > > > I think you need to do this via the underlying dataProvider, instead > of > > trying to directly manipulate rendered controls. > > > > > > > > On the edit event of the text control, set a property in the > > corresponding dataProvider item. Have the item renderer respond to > that > > value change by changing its state. > > > > > > > > Tracy > > > > > > > > ________________________________ > > > > From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] > On > > Behalf Of flex8it > > Sent: Monday, June 19, 2006 1:24 PM > > To: flexcoders@yahoogroups.com > > Subject: [flexcoders] Re: Getting a DataGrid item renderer instance > > > > > > > > More specifically, here's what I'm trying to change the viewState in > > my itemRenderer when the DataGrid's textfield is edited. But in > > order to do that, I need to somehow get an instance reference to my > > renderer component. And nothing I've done seems to work... > > > > <?xml version="1.0"?> > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml > > <http://www.adobe.com/2006/mxml> " > > xmlns:comp="components.*" > > verticalAlign="top" horizontalAlign="center" > > layout="absolute"> > > > > <mx:Script> > > <![CDATA[ > > import components.imgReset; > > import mx.collections.ArrayCollection; > > import mx.events.DataGridEvent; > > import mx.controls.Alert; > > > > [Bindable] > > public var choices:ArrayCollection = choices = new > > ArrayCollection([ > > {resetImage: "images/reset.png", fieldName: "Smalltown"}, > > {resetImage: "images/reset.png", fieldName: "Bigtown"}, > > ]); > > > > private function changeRendererState(event:DataGridEvent) : void > > { > > // I can get the rowIndex and columnIndex for the renderer, > > // but I don't exactly how to use them to get to the > > renderer object... > > Alert.show(event.rowIndex + ", " + (event.columnIndex - 1)); > > > > // I just want to get the renderer instance... > > // First, there's a problem with my typecasting ?? > > // Second, there's no such thing as a row property on > > // the DataGrid, but I really want there to be... > > var RendererInstance:imgReset = imgReset(this.myGrid.columns > > [event.columnIndex-1].row[event.rowIndex].itemRenderer); > > > > // Now I want to manipulate renderer instance > > properties/states... > > RendererInstance.currentState = 'showReset'; > > } > > ]]> > > </mx:Script> > > <mx:DataGrid id="myGrid" > > editable="true" > > dataProvider="{choices}" > > itemEditEnd="changeRendererState(event)" > > > <mx:columns> > > <mx:DataGridColumn dataField="resetImage" > > headerRenderer="components.HeaderReset" > > itemRenderer="components.imgReset"/> > > <mx:DataGridColumn dataField="fieldName" > > editable="true" width="230" > > headerText="Field Name" /> > > </mx:columns> > > </mx:DataGrid> > > </mx:Application> > > > > I'd sure appreciate some help on this conundrum. > > > > Many Thanks, > > Bruce > > > > --- In flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > > , "flex8it" bdenham@ wrote: > > > > > > I have simple datagrid with 2 columns and 2 rows like this: > > > > > > column 0 column 1 > > > -------- --------- > > > image textfield > > > image textfield > > > > > > Column 0 contains my ImageRenderer component. > > > Column 1 contains the DataGrid's default item renderer and editor: > > > text, textfield. > > > > > > First Problem: > > > How do I identify/get a reference to a particular instance of my > > > ImageRenderer from, say, column[0], row[1]? > > > > > > Second (related) Problem: > > > How do I get the ImageRender instance that corresponds to the row > > of > > > the textfield that fires an event when edited? > > > > > > I've been wrestling with this problem for days now, and I just > > can't > > > seem to get a grasp on the communication/eventing infrastructure > > > that's probably necessary to pull this off. Please help. > > > > > > Thanks, > > > Bruce > > > > > > ------------------------ Yahoo! Groups Sponsor --------------------~--> Great things are happening at Yahoo! Groups. See the new email design. http://us.click.yahoo.com/TISQkA/hOaOAA/yQLSAA/nhFolB/TM --------------------------------------------------------------------~-> -- 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/