Salut,
Je souhaite ajouter des boutons dans la première colonne d'un datagrid. Ce bouton m'affichera une alerte avec le contenu de la seconde colonne (du texte).
Comment puis-je faire ca ?
Merci.
Salut,
Je souhaite ajouter des boutons dans la première colonne d'un datagrid. Ce bouton m'affichera une alerte avec le contenu de la seconde colonne (du texte).
Comment puis-je faire ca ?
Merci.
C'est exactement ce que je cherchais, merci
J'ai encore un petit problème, j'ai déclaré un array en public dans mon main.mxml (package par défaut), j'aimerai y accéder dans mon buttonP.mxml pour pouvoir afficher le contenu de la ligne du dataGrid lorsque je clique sur le fameux bouton.
Pour accéder a un package depuis le package par défaut il suffit de taper "nomduPackage.composant", comment faire l'inverse...
Ton main.mxml c'est un mx:Application ?
Tu dois pouvoir faire
N'oublie pas le tag résolu
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.application.tonArray
Charles.
C'est un s:Application, "Application.application" ne marche pas.
Tu peux exposer une propriété publique de type Array dans ton ItemRenderer et lui assigner comme valeur le Array du "main".
Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
Mon blog : pragmateek.com
D'accord mais j'assigne la valeur comment ?
monArray = XXX.monArrayDuMain; Que dois-je mettre a la place des XXX.
Tu l'assignes de l'extérieur, dans le main, là où tu utilises l'ItemRenderer.
Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
Mon blog : pragmateek.com
Dans mon main.mxml j'ai mis
"renderer" c'est mon package,
Code : Sélectionner tout - Visualiser dans une fenêtre à part renderer.buttonP.tab = dateCollection;
"buttonP" le non du composant,
"tab" un ArrayCollection déclaré en public dans buttonP.mxml
J'ai ce message d'erreur :Je dois forcément merder quelque part..
Code : Sélectionner tout - Visualiser dans une fenêtre à part 1119: Accès à la propriété tab peut-être non définie, via la référence de type static Class
La propriété devant être définie au niveau du renderer ça donnerait plutôt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part renderer.tab = dateCollection;
Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
Mon blog : pragmateek.com
Ca ne marche toujours pas :
Pourtant j'ai déclarer "tab" dans buttonP.mxml
Code : Sélectionner tout - Visualiser dans une fenêtre à part 1202: Accès à la propriété non définie tab dans le package renderer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part public var tab:ArrayCollection = new ArrayCollection();
Comment est défini ton renderer et comment est-il utilisé ?
Tu peux procéder de cette façon : http://www.remwebdevelopment.com/dev...mRenderer.html
Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
Mon blog : pragmateek.com
Voici comment j'utilise mon renderer
Main.mxml :
Et voici mon buttonP.mxml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <mx:DataGrid id="render" dataProvider="{dateCollection}" color="0x000000" height="100%" width="100%" itemClick="goto()"> <mx:columns> <mx:DataGridColumn dataField="keyword" headerText="Mots Clefs"/> <mx:DataGridColumn dataField="descr" headerText="Descrption"/> <mx:DataGridColumn dataField="lien" headerText="Lien"/> <mx:DataGridColumn dataField="date" headerText="Date"/> <mx:DataGridColumn dataField="ponderation" headerText="Ponderation"/> <mx:DataGridColumn itemRenderer="renderer.buttonP" headerText="Choix"/> </mx:columns> </mx:DataGrid>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
40
41
42
43
44
45
46
47
48 <?xml version="1.0" encoding="utf-8"?> <mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"> <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.controls.*; import mx.events.*; public var tab:ArrayCollection = new ArrayCollection(); public function clk():void { //afficher les infos } public var myMenu:Menu; protected function showHandler():void { myMenu = Menu.createMenu(null, myMenuData, false); myMenu.labelField="@label"; myMenu.show(stage.mouseX, stage.mouseY); myMenu.addEventListener(MenuEvent.CHANGE, onMenuChange); } public function onMenuChange(e:MenuEvent):void { Alert.show(e.label); } ]]> </fx:Script> <fx:Declarations> <fx:XML format="e4x" id="myMenuData"> <root> <menuitem label="Classer dans .."> <menuitem label="Important" groupName="one"/> <menuitem label="Plus tard" groupName="one"/> </menuitem> </root> </fx:XML> </fx:Declarations> <s:Button id="butn" label="Supprimer" click="clk()"/> <s:Button id="ad" label="Classer dans" click="showHandler()"/> </mx:VBox>
Il faut gérer la création de tes renderers :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <fx:Script> ... private function dg_creationComplete():void { var factory:ClassFactory = new ClassFactory(renderer.buttonP); factory.properties = {tab:this.tab}; dgc.itemRenderer = factory; } ... </fx:Script> ... <mx:DataGrid id="dg" ... creationComplete="dg_creationComplete()"> <mx:columns> ... <mx:DataGridColumn id="dgc" headerText="Choix"/> </mx:columns>
Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
Mon blog : pragmateek.com
Je ne comprend pas ce que tu veux faire avec ce bout de code ? Mon tab est déclarer dans mon package "renderer" pourquoi met tu "this" ?
Du coup ca me ressort un message d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 1119: Accès à la propriété tab peut-être non définie, via la référence de type static Main. Main.mxml
"this" est l'Application, et "tab" le tableau défini par celle-ci, celui dont tu parles ici :Mon tab est déclarer dans mon package "renderer" pourquoi met tu "this" ?
j'ai déclaré un array en public dans mon main.mxml (package par défaut)
Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
Mon blog : pragmateek.com
J'ai réglé le problème en mettant "dateCollection" a la place de "tab"
En revanche je n'arrive toujours pas a accéder aux valeurs de mon "dateCollection" dans mon package renderer...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 private function dg_creationComplete():void { var factory:ClassFactory = new ClassFactory(renderer.buttonP); factory.properties = {tab:this.dateCollection}; dgc.itemRenderer = factory; }
Si tu as bien déclaré une propriété "tab" dans le renderer tu ne devrais pas avoir de soucis.
C'est cette propriété qui recevra la valeur du tableau "this.dateCollection".
Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
Mon blog : pragmateek.com
Ça marche nickel parfait, un grand merci a toi.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager