Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > Flash/Flex > Flex > MXML
MXML Questions relatives au format MXML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/05/2009, 03h31   #1
Cdic83
Nouveau Membre du Club
 
Étudiant
Inscription : juillet 2006
Messages : 45
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2006
Messages : 45
Points : 38
Points : 38
Envoyer un message via MSN à Cdic83 Envoyer un message via Skype™ à Cdic83
Par défaut datagrid editable Itemrenderer avec checkbox

Bonjour,
je viens vers vous car je viens de passer une bonne partie du week end à chercher ce qui n'allait pas.
Je souhaite progresser en Flex et voila pourquoi je m'accroche... mais la je suis pour le moins battu...


Je souhaite travailler sur une table d'une base de données MySQL.
Je suis parti du menu "Data" de Flex 3 permettant de générer un formulaire pour ma table.

J'ai un champ dans ma base de données qui a comme valeur 0 ou 1 afin de valider ou non la publication.(que j'ai type comme étant comme un texte)

Pour ce champ, j'aimerais que dans mon datagrid (qui est éditable=true) l'on coche une checkbox pour faire passer valider de "1" à "0" et vice et versa.

J'ai donc ajouté pour ma colonne "valide" un itemrenderer avec une checkbox.
Avec le code suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<mx:DataGrid id="dataGrid"
	dataProvider="{dataArr}"
	rowCount="8"
	editable="true"
        variableRowHeight="true" 
	resizableColumns="false"
	headerRelease="setOrder(event);"
	right="10" left="10" top="10" bottom="71">
	<mx:columns>
		<mx:DataGridColumn visible="false" headerText="citation_id" dataField="citation_idCol" />
		<mx:DataGridColumn width="200"  headerText="Citation" wordWrap="true" dataField="citation_textCol"/>
		<mx:DataGridColumn width="45"  headerText="Auteur" dataField="citation_authorCol" />
		<mx:DataGridColumn width="80"  headerText="Qualité de l'auteur" dataField="citation_author_descCol" />
		<mx:DataGridColumn width="30" headerText="Validé" editorDataField="selected" dataField="citation_validCol" rendererIsEditor="true">
		<mx:itemRenderer>
                     <mx:Component>
                           <mx:CheckBox selected="{data.citation_validCol==1}"/>
		      </mx:Component>
		</mx:itemRenderer>
	</mx:DataGridColumn>
	</mx:columns>
</mx:DataGrid>
Vous allez me dire pourquoi data.citation_validCol==1, sans cette vieille feinte mon checkbox ne se checkait pas quand j'avais un 1 dans la colone...
Comme mon datagrid est editable et que j'ai un écouteur sur son évenement EDIT_END j'aimerais que quand l'on clicke sur mon checkbox cela déclenche
cet évènement en simulant une édition d'un case texte que l'on set à "0" ou à "1"...

J'ai vu des codes on l'on fait un overwrite de la fonction set data et get data mais je ne suis pas familier avec cette syntaxe hélas...
Je fais donc appel à votre aide pour voir de quelle issue je dispose car je seche vraiment...

Je vous remercie par avance pour votre aide

PS : J'ai mis mes sources actuelles ainsi que ma base de données pour que vous voyez plus clairement le probleme qui est le mien...

BDD

sources PHP

Projet Flex
Cdic83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2009, 07h16   #2
ellene
Rédactrice/Modératrice
 
Ellène
Inscription : mai 2006
Messages : 895
Détails du profil
Informations personnelles :
Nom : Ellène
Localisation : France

Informations forums :
Inscription : mai 2006
Messages : 895
Points : 1 771
Points : 1 771
Salut,

Si tu veux éditer les éléments d'une datagrid tu devrais essayer un itemEditor :
http://www.flex-tutorial.fr/2009/03/...a-mise-a-jour/

Citation:
J'ai vu des codes on l'on fait un overwrite de la fonction set data et get data mais je ne suis pas familier avec cette syntaxe hélas...
Je fais donc appel à votre aide pour voir de quelle issue je dispose car je seche vraiment...
Je ne vois pas ce qu'il y a de très compliqué mais si tu as un peu de mal post ton code et on t'aidera. En fait il s'agit juste d'une externalisation de l'item renderer pour que celui ci puisse être utilisé à plusieurs endroits c'est tout.
__________________
Nous mettons en place une FAQ Flex, vous pouvez contribuer ici ! Aidez nous !

JDuchess France le groupe féminin Java en France : Rejoignez nous !
JDuchess France blogue !
ellene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2009, 12h21   #3
Cdic83
Nouveau Membre du Club
 
Étudiant
Inscription : juillet 2006
Messages : 45
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2006
Messages : 45
Points : 38
Points : 38
Envoyer un message via MSN à Cdic83 Envoyer un message via Skype™ à Cdic83
Je vais essayer de voir avec ce lien la et au besoin je reviendrais sur le forum pour vous dire ce qu'il en ai.

Merci en tout cas !
Cdic83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2009, 22h00   #4
samy2525
Membre confirmé
 
Avatar de samy2525
 
Inscription : janvier 2008
Messages : 259
Détails du profil
Informations personnelles :
Localisation : France, Hauts de Seine (Île de France)

Informations forums :
Inscription : janvier 2008
Messages : 259
Points : 286
Points : 286
Par défaut CheckBoxItemRenderer

Bonjour, je pense que le sujet est vraiment largement abordé dans le forum sinon sinon si tu veux évoler dans le domaine de Flex je te conseille d'aller plus vers le AS comme ça tu toucheras à beaucoup beaucoup de chose bref

à mon avis et comme j'ai deja poster tu dois créer un item Renderer de ce type
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
40
41
42
43
 
package com.tonprojet.component.renderer
{
 
 
	import flash.events.Event;
	import mx.containers.VBox;
	import mx.controls.CheckBox;
 
	public class CheckBoxAction extends VBox
	{
		private var checkBox : CheckBox;
		public function CheckBoxAction()
		{
			super();
			setStyle("horizontalCenter",0);
			setStyle("verticalCenter",0);
 
 
		}
 
		override public function set data(value:Object):void {
 
                       if(value && 
                          value.hasOwnProperty("citation_validCol") &&
                           value.citation_validCol=="1"){
 
                                  checkBox.selected = true;
                        }
 
                        super.data = value;
 
		}
 
		override protected function createChildren():void{
 
			super.createChildren();
			checkBox = new CheckBox();
			addChild(checkBox);
		}
 
	}
}
voila apés il faut juste applé cette class dans ton MXML

en gros dans la ligne où tu as mis l'itemRenderer tu fais ca

Code :
1
2
<mx:DataGridColumn width="30" headerText="Validé" editorDataField="selected" dataField="citation_validCol" 
itemRenderer="com.tonprojet.component.renderer.CheckBoxAction">
et voila ton code est prés à être utiliser

Bon courage
samy2525 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h35.


 
 
 
 
Partenaires

Hébergement Web