Thanks Scott, I fixed it myself. Another _____callLater_______ issue..... George
Scott Melby wrote: > Sorry... responded too soon and didn't see source code below :( > > Scott > > Scott Melby > Founder, Fast Lane Software LLC > http://www.fastlanesw.com > > > > Scott Melby wrote: >> >> You probably want to make that column non editable editable="false" >> and just put a handler on the click event... click="doSomething(event)". >> >> hth >> Scott >> >> Scott Melby >> Founder, Fast Lane Software LLC >> http://www.fastlanesw.com >> >> >> George wrote: >>> >>> Hi guys, >>> >>> My DataGrid is listening to itemEditEnd for each itemEditor change. I >>> have a ComboBox and a CheckBox used as itemEditor components in the >>> datagrid. I'm going to make immediate actions to user interaction, like >>> when change selection of a ComboBox, once user select another value, >>> application immediately make a request to server and continue something >>> upon response. >>> >>> The ComboBox works well for me, when there's a 'close' event I simply >>> move focus out of that itemEditorInstance, itemEditEnd function >>> activated without problem. >>> >>> But the CheckBox behavior is quite strange, when I click on it, if >>> checkbox.selected change to false, itemEditEnd function won't do >>> anything; but when click on and checkbox.selected=true, itemEditEnd >>> immediately get the event. I don't understand how CheckBox ate the >>> focusManager changes. >>> >>> Source code followed, I tried different ways from simple CheckBox >>> component to custom component but no luck. >>> >>> Any help appreciated. >>> >>> Thanks, >>> George >>> >>> --------------------------------------------------------- >>> DataGrid component class: >>> <mx:DataGridColumn headerText="Enable" itemRenderer="EnableEdit" >>> rendererIsEditor="true" editorDataField="selected" dataField="enable" >>> width="50" sortable="false"/> >>> >>> private function itemEditEndHandler(e:DataGridEvent):void >>> { >>> trace('get it?'); >>> var grid:DataGrid = e.currentTarget as DataGrid; >>> var pos:Object = grid.editedItemPosition; >>> trace(pos.rowIndex); >>> // something to do >>> } >>> >>> EnableEdit.mxml: >>> <?xml version="1.0" encoding="utf-8"?> >>> <mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml >>> <http://www.adobe.com/2006/mxml>" >>> horizontalAlign="center" dataChange="this.update()" >>> creationComplete="init()"> >>> <mx:Script> >>> <![CDATA[ >>> import mx.binding.utils.BindingUtils; >>> >>> [Bindable] >>> public var selected:Boolean; >>> >>> private function init():void >>> { >>> this.update(); >>> //BindingUtils.bindProperty(this, 'check', >>> this.checkBox, 'selected'); >>> } >>> private function update():void >>> { >>> this.selected = data.enable; >>> this.checkBox.selected = this.selected; >>> } >>> /* >>> public function set check(b:Boolean):void >>> { >>> if(this.selected != b){ >>> trace('changed?'); >>> this.selected = b; >>> //change focus will dispatch itemEditEnd event or >>> whatever. >>> >>> RouterModelLocator.getInstance().application.mainView.setFocus(); >>> } >>> }*/ >>> private function clicked():void >>> { >>> trace('clicked'); >>> //this.checkBox.setFocus(); >>> >>> TestModelLocator.getInstance().application.mainView.setFocus(); >>> } >>> ]]> >>> </mx:Script> >>> <mx:CheckBox id="checkBox" click="this.clicked()"/> >>> </mx:HBox> >>> >>