Сделать редактор элементов редактируемым из расширенной сетки в 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>