I need to handle the endEdit event to do some data massaging on the input as well as update other values based on that input value. Besides, it seems to me that the end result would be the same whether I handled endEdit or the DG handled endEdit, that is losing of focus in the new cell. Yes?
--- In [email protected], "Alex Harui" <[EMAIL PROTECTED]> wrote: > > What are you using the endEdit for? You should just let the DG call it > when you change editedItemPosition. > > ________________________________ > > From: [email protected] [mailto:[EMAIL PROTECTED] On > Behalf Of Mike_Robinson_98 > Sent: Monday, May 07, 2007 9:02 PM > To: [email protected] > Subject: [flexcoders] Re: Keyboarding up/down editable columns in > Datagrid > > > > --- In [email protected] <mailto:flexcoders%40yahoogroups.com> > , "Mike_Robinson_98" > mike_robinson_98@ wrote: > > > > --- In [email protected] > <mailto:flexcoders%40yahoogroups.com> , "Manish Jethani" > > <manish.jethani@> wrote: > > > > > > On 5/8/07, Mike_Robinson_98 <mike_robinson_98@> wrote: > > > > Has anyone come up with a good way to let a user move up/down in > an > > > > editable column of a datagrid using the keyboard? These columns > use a > > > > TextInput as the itemEditor. > > > > > > > > Right now I use a handler for the keyFocusChangeEvent on the > datagrid > > > > to handle TAB and Shift-TAB keys to move horizontally through the > > > > rows. However, moving up/down in the columns is more difficult > because > > > > the editor's TextInput captures the Return key and the > > > > TextFieldAutomationHelper class captures all the other interesting > > > > keystrokes (navigation keys like UP and DOWN arrows) and it > seems the > > > > DataGrid is only interested in the TAB key when it handles > focusChange > > > > events. > > > > > > This simple test worked for me: > > > > > > <?xml version="1.0"?> > > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml > <http://www.adobe.com/2006/mxml> " > > > xmlns="*"> > > > <mx:DataGrid id="dg" editable="true" keyDown="handleKeyDown()"> > > > <mx:dataProvider> > > > <mx:Object name="foo" value="1" /> > > > <mx:Object name="bar" value="2" /> > > > </mx:dataProvider> > > > </mx:DataGrid> > > > <mx:Script> > > > private function handleKeyDown():void > > > { > > > var v:Object = dg.editedItemPosition; > > > v.rowIndex++; > > > dg.editedItemPosition = v; > > > } > > > </mx:Script> > > > </mx:Application> > > > > > > Use the down arrow key to move from foo to bar. > > > > > Thanks a lot for the reply. That is a nice, simple solution. > > > > I have one more slight problem along this line maybe you could shed > > some light on. In my app, I use the endEdit function for the datagrid. > > Unfortunately, although I move the focus to the column in the new row, > > the endEdit code gets call after this focus occurs and consequently > > focus is lost. I have tried 'callLater' for the focus method but have > > the same result. Even, setup a timer to delay the focus for 200 ms. > > Still endedit come along and focus is lost. Have you or any other > > reader run into this issue? > > > Another note - actually, the setting of the focus is what is causing > the endedit event for the previous cell. Seems like a catch-22. > Setting the focus caused the endevent for the previous cell which then > causes the current cell to lose focus. Again, I am probably making > things too complex. >

