affectation d'une fonction à une variable
Bonjour, je voudrais affecté une fonction créée dans une application flex à un item renderer créé par un actionscript.
Le but, c'est de supprimer la ligne du DataGrid par click sur le bouton item renderer.
item renderer
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
package Components
{
import flash.events.*;
import mx.controls.Button;
public class RendererButton extends Button
{
[Bindable]
public var handleDelete:Function;//mon soucis se trouve là
public function RendererButton()
{
label = "Delete";
id = "btDeleteDate";
}
//Suppression Date
override protected function clickHandler(event:MouseEvent):void
{
handleDelete.apply(null, [data]);
}
}
} |
application flex
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" applicationComplete="onLoad()" xmlns:local="*"
visible="{contractService.findAllContractType.lastResult != null}">
<mx:Script>
<![CDATA[
...
...
//Delete line
[Bindable]
public function handleDelete(event:Event):void{
var i:int = aDG.selectedIndex;
if (event.target.id == "btDeleteDate"){
if (aDG.selectedIndex != -1){
delete(contract.validityPeriods[i]);
}
this.dispatchEvent(new Event("updateContract"))
}
}
]]>
</mx:Script>
...
...
mx:DataGrid id="aDG" width="100%" height="100%" dataProvider="{contract.validityPeriods}" change="addToCurrent(event)">
<mx:columns>
<mx:DataGridColumn dataField="startDate" headerText="StartDate" editable="true"/>
<mx:DataGridColumn dataField="endDate" headerText="EndDate" editable="true"/>
<mx:DataGridColumn dataField="stateFlag" headerText="StateFlag" editable="true"/>
<mx:DataGridColumn headerText="Control" itemRenderer="Components.RendererButton"/>
</mx:columns>
</mx:DataGrid>
...
...
</mx:Application> |
ERREUR RENCONTREE
Citation:
TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
at Components::RendererButton/clickHandler()[/Users/oracle/Workspaces/MyEclipse 7.0/tutoWebService/src/Components/RendererButton.as:20]
Comment affecter la fonction handleDelete(event:Event) à ma variable dans mon actionscript??
Pour être plus clair, l'idée c'est de faire un binding de la fonction sur le composant ActionScript créé.
Merci pour vos suggestions