使项目编辑器可以在flex中编辑高级数据库

时间:2012-05-23 10:11:10

标签: flex flex4 advanceddatagrid itemeditor

我有一个高级数据网格,其中我有2列,列的每一行都是项目编辑器

现在我想在双击时编辑行单元格我尝试了各种各样的东西以使其可编辑 一些属性是用这段代码编写的。

我将colmns Grid的editable属性设为true,并且我尝试将rendrerIsEditor设置为true ...

 <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 个答案:

答案 0 :(得分:1)

您的代码存在一些问题:

  • 您想使用自定义itemEditor,因此请勿设置rendererIsEditor="true"
  • 您无法在s:GridItemEditor中使用AdvancedDataGrid。这是Spark s:DataGrid
  • id中不允许<fx:Component>属性。
  • 使用Spark组件itemEditor并不像以前那样使用Halo组件。我建议您使用mx:TextInput代替s:TextInput。如果您需要使用Spark,请查看MXAdvancedDataGridItemRendererUsing a Spark item renderer with an MX control

以下是修正所有问题并使用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>