Проблема компонента Flex DataGrid - PullRequest
2 голосов
/ 21 января 2011

Ребята, у меня вид сетки в 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 Ответ

4 голосов
/ 22 января 2011

Ваш itemRenderer считается его собственным инкапсулированным компонентом, поэтому он ищет someFunction() внутри самого itemRenderer.Чтобы вызвать функцию, которую вы определили в файле mxml, который содержит ваш DataGrid, попробуйте вызвать функцию, используя 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>
...