Thanks, Alex. I don't know if there's a bug, per se. As I mentioned in my first post, I only had an issue when losing focus to something outside the grid. I may have a workable solution which is hopefully not too ugly:
- on itemEditEnd, call preventDefault, and re-activate the editor using editedItemPosition - in the editor, override setFocus and call the validator I haven't tested this with scrolling. On Nov 29, 2007 11:15 AM, Alex Harui <[EMAIL PROTECTED]> wrote: > Keep in mind that, if the user scrolls, or clicks outside the DG, there > is no way to prevent the edit session from ending (at least not without a > whole bunch of work). > > I just took a look at the code. When tabbing from one cell to another, > preventDefault() on itemEditEnd should keep the editor alive. If you put > together a small test case I can try to see why it doesn't work. > > ------------------------------ > *From:* [email protected] [mailto:[EMAIL PROTECTED] *On > Behalf Of *Richard Rodseth > *Sent:* Thursday, November 29, 2007 10:52 AM > *To:* [email protected] > *Subject:* Re: [flexcoders] itemEditEnd preventDefault > > And if I omit preventDefault, the invalid value remains, but the red > focus ring turns blue. I've also established that setting editedItemPosition > creates a new item editor (as I would expect), so I can't store and access a > "valid" flag in the item editor component. > > Is there some other way to prevent an invalid field from losing focus? Or > to restart the edit with the invalid value and have it re-validate? > > On Nov 28, 2007 1:51 PM, Richard Rodseth <[EMAIL PROTECTED]> wrote: > > > That keeps(restores) the focus, but also restores the pre-edit value. > > > > > > On Nov 28, 2007 1:20 PM, Alex Harui < [EMAIL PROTECTED]> wrote: > > > > > IIRC, the pattern is to call preventDefault and then set > > > editedItemPosition to the current position. > > > > > > ------------------------------ > > > *From:* [email protected] [mailto:[EMAIL PROTECTED] > > > *On Behalf Of *Richard Rodseth > > > *Sent:* Wednesday, November 28, 2007 12:20 PM > > > *To:* [email protected] > > > *Subject:* [flexcoders] itemEditEnd preventDefault > > > > > > I have an item renderer/editor that does as-you-type validation > > > using standard Flex validators, and updates a "valid" property in the > > > data. > > > I wish to prevent the edit from ending if the data is valid. > > > > > > When tabbing, the following works in column one, but not in column two > > > (the last editable column): > > > > > > private function handleItemEditEnd(event : DataGridEvent) : void { > > > > > > if (event.itemRenderer.data.valid) { > > > > > > // do some stuff > > > > > > } else { > > > > > > event.preventDefault(); > > > > > > } > > > > > > > > > Any ideas? Also, does the renderer get any access to this event? If I > > > want to move "valid" from the data to the renderer itself, I suppose I > > > would > > > have to cast event.itemRenderer above to my renderer type, and call a > > > method or access a property. > > > > > > > > > Thanks. > > > > > > > > > >

