Как получить selectedItem из comrenBox itemrenderer в таблице данных и отобразить значение в другом столбце - PullRequest
1 голос
/ 21 января 2012

У меня проблема с itemRender в сетке данных.На самом деле у меня есть dataProvider, который заполняет 2 столбца в моей сетке данных.Данные первого столбца отображаются в TextInput, а данные второго столбца отображаются в comboBox.Теперь я хочу, чтобы при выборе элемента в поле со списком строки в сетке.Я хочу показать значение selectedItem в соответствующем TextInput в той же строке первого столбца.

Я хочу знать, есть ли какое-либо свойство datagrid, которое может помочь мне сделать это?Или если кто-то может подсказать мне, что кодировать в обработчике изменений comboBox?Смотрите мои коды ниже.

Мне нужна помощь.Просьба разобраться со мной для кого-то.

    <mx:DataGrid id="myDG" rowHeight="25" dataProvider="{my_arrayColl}" width="100%" height="205" chromeColor="#D0CCAF" headerHeight="0" showHeaders="false">
                    <mx:columns>
                        <mx:DataGridColumn headerText="My Header 1"                                                                        
                                           editable="true"                                                                        
                                           dataField="LBL"                                                                            
                                           >
                            <mx:itemRenderer>
                                <fx:Component>
                                    <mx:HBox horizontalAlign="left" horizontalScrollPolicy="off" verticalScrollPolicy="off">


                                        <fx:Script>
                                            <![CDATA[
                                                import mx.controls.Alert;
                                                import mx.controls.Text;

                                                import spark.events.TextOperationEvent;

                                                protected function label_txt_changeHandler(event:TextOperationEvent):void
                                                {
                                                    data.LBL = label_txt.text;
                                                }   


                                            ]]>
                                        </fx:Script>

                                        <s:TextInput id="label_txt" change="label_txt_changeHandler(event)" text="{data.LBL}" width="98%"/>
                                    </mx:HBox>
                                </fx:Component>
                            </mx:itemRenderer>
                        </mx:DataGridColumn>    

                        <mx:DataGridColumn headerText="My Header 2"                                                                       
                                           editable="true"                                                                                
                                           rendererIsEditor="true"                                                                        
                                           dataField="ALIAS"                                                                            
                                           >
                            <mx:itemRenderer>
                                <fx:Component>
                                        <mx:ComboBox height="80%" change="mycb_changeHandler(event)" labelField="ALIAS" dataProvider="{outerDocument.mycb_array}">
                                            <fx:Script>
                                                <![CDATA[
                                                    import mx.events.ListEvent;

                                                    protected function mycb_changeHandler(event:ListEvent):void
                                                    {

                                                    }

                                                ]]>
                                            </fx:Script>

                                        </mx:ComboBox>
                                </fx:Component>
                            </mx:itemRenderer>
                        </mx:DataGridColumn>

                    </mx:columns>
                </mx:DataGrid>

1 Ответ

0 голосов
/ 06 февраля 2012

Если я правильно понимаю, вы хотите обновить поставщика данных DataGrid, основываясь на выборе в вашем компоненте ComboBox в itemRenderer.Вы можете сделать это, перейдя к объекту владельца и обновив соответствующий объект в данных.Просто сохраните itemRenderer в отдельном mxml и поместите указатель отладки в метод label_txt_changeHandler.

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

...