伙计我在flex中有一个网格视图,
其中一列呈现如下:
<mx:DataGridColumn headerText="Cancel" >
<mx:itemRenderer>
<fx:Component>
<mx:Box width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<mx:Button label="Download" width="100%" >
<mx:click>someFunction();</mx:click>
</mx:Button>
</mx:Box>
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
现在我遇到了一个问题,即按钮点击功能无法识别。它表示“调用可能未定义的函数”,即使它被定义了。这有什么问题?如何在网格中创建一个按钮调用同一个mxml文件中的函数?
感谢
答案 0 :(得分:4)
您的itemRenderer
被视为自己的封装组件,因此它正在someFunction()
内寻找itemRenderer
。要调用您在包含DataGrid
的mxml文件中定义的函数,请尝试使用outerDocument.someFunction();
调用该函数。
如果您想在itemRenderer级别定义函数,可以执行以下操作:
<mx:itemRenderer>
<fx:Component>
<mx:VBox>
<fx:Script>
<![CDATA[
public function someFunction():void
{
// Do Something
}
]]>
</fx:Script>
<mx:Button click="someFunction();"/>
</mx:VBox>
</fx:Component>
</mx:itemRenderer>