如何在按键事件中添加数据网格行?

时间:2009-10-08 06:39:24

标签: flex datagrid keyevent

我有一行数据网格。当我点击第一行时,即按键事件,我想要添加另一行。

之前我有一个按钮,点击后我添加了行。但是现在我希望在单击第一行后自动添加行。怎么做?

我将keydown事件添加到datagrid,但它引发了一些错误。

有人能帮助我吗?我在这里给了我的代码。 我在任务组件中有一个文本框和一个按钮。当我单击任务组件中的文本框时,我希望调用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>

2 个答案:

答案 0 :(得分:1)

您想按键或鼠标点击吗?将keyDown更改为mouseDown

  

但它引发了一些错误。

它抛出了什么错误?

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

答案 1 :(得分:0)