itemEditEnd is session based.  If you click, but then don't tab or click
elsewhere, the change is not committed until you do.  There will always
be an itemEditEnd eventually though.

 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Glenn Jones
Sent: Tuesday, July 15, 2008 7:33 AM
To: [email protected]
Subject: Re: [flexcoders] problem using checkbox in DataGrid

 

I'll look into that, but our app has a lot riding on item-edit-end, so
side-stepping item-edit-end
is going to be pretty difficult for me.

I was hoping to find some workaround to make sure that
item-edit-begin/end is always
started.



On Mon, Jul 14, 2008 at 6:20 PM, Alex Harui <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> > wrote:

There are some checkbox examples on my blog (blogs.adobe.com/aharui
<http://blogs.adobe.com/aharui> ).

 

Look for other examples.  Most folks update the dataprovider when the
checkbox sends its change event and don't wait for ITEM_EDIT_END

 

________________________________

From: [email protected] <mailto:[email protected]>
[mailto:[email protected] <mailto:[email protected]> ]
On Behalf Of Glenn Jones
Sent: Monday, July 14, 2008 1:50 PM
To: [email protected] <mailto:[email protected]> 
Subject: [flexcoders] problem using checkbox in DataGrid

 

I'm having a problem using a checkbox as an item editor within a
datagrid. It might be a bug or maybe I'm doing something wrong.
Either way, I need to fine some resolution/workaround.

In my DataGridColumn definition, I'm setting editable=true and
rendererIsEditor=true for the column with the checkbox. My application
listens for ITEM_EDIT_BEGINNING, ITEM_EDIT_BEGIN, ITEM_EDIT_END,
ITEM_FOCUS_IN and onSelectChange events on the grid.

The majority of times, the checkbox works fine - it displays the proper
status for the underlying data element and it updates the element
correctly as well.  The problem occurs, intermittenly, in the following
scenario

1. Click on a checkbox in row A
- the checkbox toggles status on screen and row A is selected

2. Click on a checkbox in row B
- the checkbox in row B toggles status on screen, row B is selected, but
the checkbox in row A toggles back to it's previous state.

In other words, the checkbox change made in step 1 is lost. This happens
on irregular basis, but is repeatable at least once
every 5-10 trials.

I've found that when the problem occurs, the grid never sends an
item_edit_beggining/item_edit_begin event in step 1.  Consistent
with no item-edit-beginning event, there is no item-edit-end event when
focus changes to row B in step 2. 
Without the item-edit-begining/item-edit-end events, the state of the
checkbox toggle in step #1 is not reflected back into the underlying
data.
The changing row selection in step 2 has the side-effect of updating the
display list, at which point, the item renderer in row A redraws itself
with the underlying data. Since the underlying data was never changed,
the checkbox in row A flips back to it's original state.

In the checkbox's click handler, I've confirmed that if the parent
grid's editedItemPosition attribute is null when the checkbox is
clicked,
then the change in checkbox status will be lost if the grid is redrawn;
i.e. editedItemPosition == null is consistent with never getting the 
item-edit-beginning event.

If all of this is clear as mud, thanks for taking the time to read this
far :-)

If anyone has some suggestions (or patch ids?) for why the grid may not
recognize that an item-edit cycle has started when a checkbox
is selected, please let me know.

When the checkbox edit works correctly, the sequence of events I see is

1. Click on a checkbox in row A
          itemEditBegining for row A
          itemEditBegin for row A
          itemFocusIn for checkbox in row A
          checkbox click event for row A
2. Click on a checkbox in row B.
          itemEditBegin for row A <=== correct checkbox state written
back to underlying data
          itemEditBegining for row B
          itemEditBegin for row B
          itemFocusIn for checkbox in row B
          checkbox click event for row B

Thanks,
- Glenn

 

 

Reply via email to