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

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

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

я делаю редактируемое свойство истинным для Grid Colmns, а также я попытался 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>

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

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>
Другие вопросы по тегам