Flex datagrid组件问题

时间:2011-01-21 20:40:09

标签: flex actionscript-3 flex3 flex4 mxml

伙计我在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文件中的函数?

感谢

1 个答案:

答案 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>