Сделать редактор элементов доступным для редактирования в расширенной сетке во flex

у меня есть предварительная сетка данных, в которой у меня есть 2 столбца, и каждая строка столбца является редактором элементов

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

я делаю редактируемое свойство colmns Grid истинным, а также я пробовал RendrerIsEditor, чтобы установить его истинным...

 <mx:AdvancedDataGrid id="varGrid"  width="100%" top="7" bottom="5" left="7" right="7" rowCount="15"
                            sortableColumns="true" editable="true">
            <mx:columns>
                <mx:AdvancedDataGridColumn headerText="Name" editable="true" dataField="name" sortable="true" editorDataField="text" rendererIsEditor="true">
                    <mx:itemEditor>
                        <fx:Component>
                            <s:GridItemEditor >
                                <s:TextInput id="variableName" text="@{value}" restrict="^\\{\\}" width="100%" height="100%" maxChars="250" 
                                            />
                            </s:GridItemEditor>
                        </fx:Component>
                    </mx:itemEditor>
                </mx:AdvancedDataGridColumn>

                <mx:AdvancedDataGridColumn headerText="Value" editable="true" dataField="lastValue" sortable="true" rendererIsEditor="true">
                    <mx:itemEditor>
                        <fx:Component>
                            <s:GridItemEditor>
                                <s:TextInput text="@{value}" restrict="^\\{\\}" width="100%" height="100%" maxChars="250"/>
                            </s:GridItemEditor>
                        </fx:Component>
                    </mx:itemEditor>
                </mx:AdvancedDataGridColumn>
            </mx:columns>

            <s:AsyncListView list="{data.variables}"/>
        </mx:AdvancedDataGrid>

Помогите, пожалуйста, правильно ли я делаю или чего-то не хватает?


person rkSinghania    schedule 23.05.2012    source источник


Ответы (1)


В вашем коде есть пара ошибок:

  • Вы хотите использовать пользовательский itemEditor, поэтому не устанавливайте rendererIsEditor="true".
  • Вы не можете использовать s:GridItemEditor в AdvancedDataGrid. Это для Искры s:DataGrid.
  • Атрибут id не разрешен в пределах <fx:Component>.
  • Использовать компоненты Spark в качестве itemEditor не так просто, как раньше с компонентами Halo. Я бы рекомендовал вам использовать mx:TextInput вместо s:TextInput. Если вам нужно использовать Spark, взгляните на MXAdvancedDataGridItemRenderer и использование средства визуализации элементов Spark с элемент управления MX.

Ниже приведен фрагмент кода, который исправляет все эти проблемы и использует компонент mx:TextInput:

<mx:AdvancedDataGrid id="varGrid" width="100%" top="7" bottom="5" left="7" right="7" rowCount="15" sortableColumns="true"
                     editable="true">
    <mx:columns>
        <mx:AdvancedDataGridColumn headerText="Name" editable="true" dataField="name" sortable="true" editorDataField="text">
            <mx:itemEditor>
                <fx:Component>
                    <mx:TextInput restrict="^\\{\\}" width="100%" height="100%" maxChars="250"/>
                </fx:Component>
            </mx:itemEditor>
        </mx:AdvancedDataGridColumn>

        <mx:AdvancedDataGridColumn headerText="Value" editable="true" dataField="lastValue" sortable="true">
            <mx:itemEditor>
                <fx:Component>
                    <mx:TextInput restrict="^\\{\\}" width="100%" height="100%" maxChars="250"/>
                </fx:Component>
            </mx:itemEditor>
        </mx:AdvancedDataGridColumn>
    </mx:columns>

    <s:AsyncListView list="{data.variables}"/>
</mx:AdvancedDataGrid>
person Gerhard Schlager    schedule 06.06.2012