2009-10-08 53 views
0

我有一个数据网格inrid一行。当我点击第一行,即关键事件时,我想要添加另一行。如何在按键事件上添加数据网格行?

早些时候我有一个按钮,点击我添加的行。但是现在我想要点击第一行后自动添加该行。怎么做?

我将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> 

回答

1

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

但它抛出了一些错误。

它抛出了什么错误?

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

+0

好吧,我现在明白了。将KeyDown更改为MouseDown。谢谢你的帮助。 – Angeline 2009-10-08 07:08:53

相关问题