Flex: немедленное редактирование в dataGrid cellEditor - PullRequest
0 голосов
/ 19 декабря 2008

Когда я редактирую ячейку в dataGrid, изменения не применяются к dataProvider, пока я не закончу редактирование. Есть ли способ, чтобы я мог внести изменения в dataProvider во время редактирования?

Я бы предположил, что способ сделать это - создать подкласс для редактора, который я использую, в данном случае NumericStepper, но я не знаю, как мне это сделать.

Есть ли какое-то событие, которое мне нужно вызвать?

Ответы [ 2 ]

0 голосов
/ 31 января 2009

если вы создаете свой собственный itemEditor / itemRenderer, вы можете сделать что-то вроде:

<mx:TextInput xmlns:mx="..." change="onChange(event)"
    implements="mx.controls.listClasses.IDropInListItemRenderer">
    <mx:Script>
        <![CDATA[

        import mx.controls.dataGridClasses.DataGridListData;
        import mx.controls.listClasses.BaseListData;
        [Bindable("dataChange")] private var _listData : BaseListData;
        public function get listData():BaseListData
        {
            return _listData;            
        }                   
        public function set listData( value : BaseListData ) : void
        {
            _listData = value;
        }

        private function onChange(event:Event):void
        {
             this.data[ (listData as DataGridListData).dataField ] = this.text;
        }
        ]]>
    </mx:Script>
</mx:TextInput>

надеюсь, это поможет.

0 голосов
/ 20 декабря 2008

Если вам нужно сослаться на что-либо за пределами itemeditor, то, как я это сделал, - через externalDocument.somePublicVar.

Так что, если вам нужно сослаться на поставщика данных в сетке данных, которую вы редактируете, вы можете обновить переменную, которую вы привязали к сетке данных, но она должна быть общедоступной (я думаю), или вы можете редактировать поставщик данных для сетей данных напрямую.

В редакторе элементов вы можете просто перехватить событие изменения и оттуда обновить значение в поставщике данных. Но помните, что событие end edit item будет сгенерировано, и если вы выполняете там какую-либо обработку, которая также может помешать вашему поставщику данных.

...