Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/07/2011, 16h04   #1
Membre régulier
 
Homme
Ingénieur développement logiciels
Inscription : avril 2008
Messages : 75
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2008
Messages : 75
Points : 70
Points : 70
Par défaut Datagrid : combobox et edition

Bonjour à tous,

j'ai un souci avec un datagrid éditable. Je m'explique, dans mon datagrid chaque ligne possède les cellules suivantes :
- cellule de texte (non éditable),
- cellule de type combobox,
- cellule de texte (éditable).

Ci-dessous un extrait du code :

Code :
1
2
3
4
5
6
7
8
9
 
<mx:DataGrid height="100%" width="100%" dataProvider="{dataFiche}" editable="true" wordWrap="true" sortableColumns="false" draggableColumns="false">
	<mx:columns>
	<mx:DataGridColumn dataField="libelle" headerText="false" width="255" fontWeight="bold" />
	<mx:DataGridColumn dataField="niveau" headerText="Niveau" textAlign="center" width="120"
		rendererIsEditor="true" editorDataField="value" itemRenderer="monRendererComboBox" />
	<mx:DataGridColumn dataField="commentaire" headerText="Commentaire" width="375" />
	</mx:columns>
</mx:DataGrid>
Le problème c'est que dès que je change une valeur dans une combobox, les cellule de textes de mon datagrid ne sont plus éditables (elles le sont bien tant que je ne touche pas aux combobox).

Quelqu'un a-t-il déjà rencontré ce problème ou aurait-il une idée du pourquoi du comment se fait-ce ?

merci d'avance
maxime_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 09h56   #2
Modérateur
 
Homme
Consultant Flex / Java
Inscription : novembre 2008
Messages : 452
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Luxembourg

Informations professionnelles :
Activité : Consultant Flex / Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2008
Messages : 452
Points : 637
Points : 637
Salut,

sauf erreur, je ne comprend pas comment t'as première colonne peut être non éditable (dixit ton post) : rien ne limite l'édition sur cette colonne en particulier.

Peux-tu nous montrer le code qu'il y a dans ton renderer combobox stp ?
__________________
N'oubliez pas avant de poster :
et bien sûr la doc Flex
Krazymins est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 10h05   #3
Membre régulier
 
Homme
Ingénieur développement logiciels
Inscription : avril 2008
Messages : 75
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2008
Messages : 75
Points : 70
Points : 70
Oups, effectivement, la propriété "editable" (et non pas "headerText"...) de la première colonne est bien entendu à false... Il faut donc lire :
Code :
<mx:DataGridColumn headerText="" editable="false" width="255" fontWeight="bold" />
Quant au code du renderer, le voici :

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
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="center">
 
	<mx:Script>
		<![CDATA[
			import mx.utils.ObjectUtil;
			public var selectedNiveau:int=1;
 
			[Bindable]
			private var niveaux:Array = [
				{label:"Valeur 1", value:1},
				{label:"Valeur 2", value:2},
				{label:"Valeur 3", value:3}
			];
 
			override public function set data(value:Object):void {
				super.data = value;
				if (value != null) {
					var currentValue:int = value.NIVEAU;
					for (var i:int = 0; i < this.niveaux.length; i++) {
						if (this.niveaux[i].value == currentValue) {
							this.cb.selectedIndex = i;
							break;
						}
					}
				}
			}
 
			public function onChange():void {
				var index:int = this.cb.selectedIndex;
				this.selectedNiveau = this.niveaux[index].value;
			}
		]]>
	</mx:Script>
 
	<mx:ComboBox id="cb" dataProvider="{niveaux}" width="120" change="onChange()" prompt="Sélectionner..." />
 
</mx:VBox>
maxime_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h26.


 
 
 
 
Partenaires

Hébergement Web