0

我最初有一个一行的数据网格。当我单击第一行时,即按下按键事件时,我希望添加另一行。

早些时候我有一个按钮,点击它我添加了行。但是现在我希望在单击第一行后自动添加该行。怎么做?

我在数据网格中添加了 keydown 事件,但它引发了一些错误。

有人能帮我吗?我在这里给出了我的代码。我在任务组件中有一个文本框和一个按钮。当我单击任务组件中的文本框时,我希望调用 addTaskRow 函数..

 <mx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;
        import mx.rpc.events.ResultEvent;
        import mx.collections.XMLListCollection;


 [Bindable]

         private var initDG:ArrayCollection = new ArrayCollection([
            {Select:true},

        ]); 

        private function addTaskRow(event:MouseEvent):void
        {
            taskDataGrid.dataProvider.addItem(
                {

                }
            );
            taskDataGrid.height += 30; 

        }

    ]]>
</mx:Script> 

<mx:DataGrid id="taskDataGrid" dataProvider="{initDG}"  variableRowHeight="true" editable="true"  
  width="100%"  paddingBottom="1" paddingTop="1" height="47"> 

    <!--mx:DataGrid id="taskDataGrid"  dataProvider="{initDG}" rowCount="1" variableRowHeight="true" editable="true" width="100%"  keyDown="addTaskRow(event);"-->
            <mx:columns>
                <mx:DataGridColumn dataField="Select" 
                editable="true" 
                rendererIsEditor="true" 
                itemRenderer="mx.controls.CheckBox" 
                editorDataField="selected" />

                <mx:DataGridColumn dataField="TaskName"
                width="220"
                editable="true" 
                rendererIsEditor="true" 
                itemRenderer="components.taskComponent"/>

                <mx:DataGridColumn dataField="TaskId"
                itemRenderer="mx.controls.TextInput" />

                <mx:DataGridColumn dataField="TaskType"
                    itemRenderer="mx.controls.TextInput"/>

                 <mx:DataGridColumn dataField="ProjectWon"
                    itemRenderer="mx.controls.TextInput"/>

                <mx:DataGridColumn dataField="ItemCodeVersion"
                    itemRenderer="mx.controls.TextInput"/>



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

2 回答 2

1

你想要它在按键或鼠标点击?更改keyDownmouseDown

但它引发了一些错误。

它抛出了什么错误?

如果您使用 DataGrid 的 mouseDown,则当您单击任何行时将添加新行,而不仅仅是第一行。

于 2009-10-08T06:56:46.830 回答
0

http://www.switchonthecode.com/tutorials/adding-dynamic-rows-to-flex-datagrid提供代码来做到这一点

于 2009-11-10T19:59:17.853 回答