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.
> > >
> > >
> >
>   
>

Reply via email to