我的 mxml 文件中有一个数据网格,例如 samp.mxml。
<mx:DataGrid id="taskDataGrid" dataProvider="{initDG}" variableRowHeight="true"
editable="true" width="100%" paddingBottom="1" paddingTop="1" height="55" >
<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"/> //i call the component.
<mx:DataGridColumn dataField="TaskId"
itemRenderer="mx.controls.TextInput" />
</mx:columns>
</mx:DataGrid>
在数据网格的其中一列中,我必须显示一个文本输入框和一个按钮。所以我把这个功能写成一个单独的组件,即 taskComponent.mxml
<mx:TextInput id="TaskName"
editable="true"
text="{data.TaskName}"
mouseDown="addTaskRow(event);"
/>
<mx:Button id="searchTask" label="..." width="30" height="25" click="showPopUp();"/>
现在,如果我单击组件中的文本输入框,我希望添加另一个数据行。早些时候我有它,如果我点击数据网格,就会添加一行。所以我在 samp.mxml 本身中编写了函数。这是添加数据网格行的功能。
private function addTaskRow(event:MouseEvent):void
{
taskDataGrid.dataProvider.addItem(
{
}
);
taskDataGrid.height += 30;
}
如果我尝试在 taskComponent 文件中编写函数,它会显示错误“未定义属性 taskDataGrid 的访问”。如何在 taskComponent 中使用数据网格?