我有一行数据网格。当我点击第一行时,即按键事件,我想要添加另一行。
之前我有一个按钮,点击后我添加了行。但是现在我希望在单击第一行后自动添加行。怎么做?
我将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>
答案 0 :(得分:1)
您想按键或鼠标点击吗?将keyDown
更改为mouseDown
。
但它引发了一些错误。
它抛出了什么错误?
如果使用DataGrid的mouseDown,当您单击任何行而不只是第一行时,将添加新行。
答案 1 :(得分:0)