Кнопка добавления Flex DataGrid в столбец данных сетки с помощью ItemRenderer? - PullRequest
6 голосов
/ 12 мая 2011

У меня есть этот код.Я хочу добавить кнопки во второй столбец сетки данных.

<mx:DataGrid width="100%" height="95%" id="id_variableRefList" >
  <mx:columns>
    <mx:DataGridColumn id="id_name" dataField=""/>
    <mx:DataGridColumn id="id_strip" dataField="">
    </mx:DataGridColumn>
  </mx:columns>
</mx:DataGrid>

Как добавить кнопки во второй столбец с помощью ItemRenderer?

1 Ответ

9 голосов
/ 12 мая 2011

Есть много способов сделать это.

Вы можете использовать встроенный itemRenderer примерно так:

<fx:Script>
  public function myButton_clickHandler(event:Event):void
  {
    Alert.show("My button was clicked!");
  }
</fx:Script>

<mx:DataGrid width="100%" height="95%" id="id_variableRefList" >
  <mx:columns>
    <mx:DataGridColumn id="id_name" dataField=""/>
    <mx:DataGridColumn id="id_strip" dataField="">
      <mx:itemRenderer>
       <fx:Component>
        <mx:VBox>
         <mx:Button label="My Button" click="outerDocument.myButton_clickHandler(event);" />
        </mx:VBox>
       </fx:Component>
      </mx:itemRenderer>
    </mx:DataGridColumn>
  </mx:columns>
</mx:DataGrid>

Или вы можете создать пользовательский компонент и установите свойство itemRenderer DataGridColumn.

<mx:DataGrid width="100%" height="95%" id="id_variableRefList" >
  <mx:columns>
    <mx:DataGridColumn id="id_name" dataField=""/>
    <mx:DataGridColumn id="id_strip" dataField="" itemRenderer="MyCustomItemRenderer"/>
  </mx:columns>
</mx:DataGrid>

ОБНОВЛЕНИЕ: Чтобы получить идентификатор кнопки, по которой вы щелкнули, вы можете использоватьcurrentTarget свойство event, которое передается вашему eventListener.

  public function myButton_clickHandler(event:Event):void
  {
    Alert.show("Button " + Button(event.currentTarget).id + " was clicked!");
  }
...