--- In flexcoders@yahoogroups.com, "Manish Jethani" <[EMAIL PROTECTED]> wrote: > > On 5/8/07, Mike_Robinson_98 <[EMAIL PROTECTED]> 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" > 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?