Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Ext JS / Sencha
Ext JS / Sencha Ext JS / Sencha Forum d'entraide sur les frameworks Ext JS et Sencha. Avant de poster : FAQ ExtJS / Sencha, Toutes les FAQ JavaScript
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 07/06/2011, 09h22   #1
Invité de passage
 
Inscription : juin 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 11
Points : 3
Points : 3
Par défaut Checkbox et Datastore

Bonjour,

Je m'initie petit à petit à Extjs en travaillant avec la version 4.
Je cherche à créer, dans un formulaire, des checkbox alimentées par un DataStore (qui récupère les valeurs dans ma BDD).

J'ai essayé de faire de la même manière que les combobox dynamiques mais, ça ne marche pas..

Quelqu'un aurait-il déjà fait cela ou aurait une piste pour m'aider ?
Un grand merci par avance,

Cdlmt
Memelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 14h35   #2
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 574
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 574
Points : 688
Points : 688
Envoyer un message via MSN à kenny.kev
Bonjour à toi,

Personnellement je ne vois pas comment tu pourrais faire sens utiliser Extdirect.

Pour le dynamisme il faut que tu crées un objet Extjs avec Ext.define ()
C'est un objet que tu peux personnaliser.
Extdirect va te permettre d'appeler tes données avec lequel tu pourras construire tes checkbox.

J'ai l'impression qu'au final c'est un combobox avec sélection multiple...

Bon courage
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 10h44   #3
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 421
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 421
Points : 2 809
Points : 2 809
Pourquoi Ext.direct ????

ExtJS fonctionnait bien avant ça.

A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 11h39   #4
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 574
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 574
Points : 688
Points : 688
Envoyer un message via MSN à kenny.kev
Citation:
Envoyé par sekaijin Voir le message
Pourquoi Ext.direct ????

ExtJS fonctionnait bien avant ça.

A+JYT
Oui pardon extdirect n'est pas utile. J'ai eu un gros trou de mémoire...
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 17h57   #5
Invité de passage
 
Inscription : juin 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 11
Points : 3
Points : 3
Bonjour à tous,

Bon alors en fait, avec de l'aide, j'ai trouvé. Contrairement à ce que je pensais, ça n'était pas si évident que ça finalement...

En fait, il faut d'abord créer un objet checkboxgroup vide, puis le remplir lors du load du store.

Pour accéder à mes objets sans être gênée par la portée des variables, dans un fichier js à part (là ou je déclare tous les require), je déclare d'abord une variable d'appel vide (appel), puis j'instancie un nouvel objet à partir de ma classe (mes_checkboxs).

Je peux accéder ainsi à mes objets facilement en tapant :
appel.mon_objet.nom_variable...

Fichier main.js
Code :
1
2
3
4
5
6
 
var appel = {};
 
Ext.onReady(function() {
	appel.mon_objet = new mes_checkboxs(); //instanciation d'un objet
});
Fichier du form
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
//L'objet principal
var mes_checkboxs = function (){
 
 
//Creation du store
this.store = new Ext.data.Store({
      storeId:'store1',
      autoload:true,
      fields:['champ1', 'champ2','champ3'],
      proxy: {
            type: 'ajax',
            url:'monurl.php',
            reader: {
	            type: 'json',
	            root: 'data'
            }
      }
}).load(function(records,operation,success){
          var test = appel.mon_objet.store.getAt(0); //recupere l'enregistrement à l'index spécifié
          var test2 = appel.mon_objet.store; //pour appeler le store
          var nbre = test2.getCount(); //nombre de valeurs récupérées
          registre.checkbox.form.removeAll(); //efface tous les champs du form
 
          for(var i = 0; i < nbre;i++){
               test = appel.mon_objet.store.getAt(i);
               appel.mon_objet.checkboxgroup = null; //vide l'objet checkboxgroup au cas ou non vide avant
               var lacheckbox ={ //creation de la structure de l'objet
                    xtype:'checkbox',  
                    boxLabel : test.get('champ1'),
                    fieldLabel: '',
                    labelWidth:  150,
                    checked: true,
                    name: 'toto'			
               };
               appel.mon_objet.form.add(lacheckbox); //ajoute les objets un par un (pas de tableau) à mon form
        }
});
 
	this.checkboxgroup = {}; //creer l'objet vide pour le declarer au constructeur de la classe
 
//objet formulaire de la fenetre
	this.form = new Ext.form.Panel({
		layout:'anchor',			 			
		bodyPadding:'10 10 10 10',	//padding
		url: 'autre_url.php',
		defaults:{
			anchor:'75%',
			labelAlign: 'right',
			labelWidth:  100
		},
		id:'form_checkbox',		
		items:[{
 
		},
			this.checkboxgroup	
		]
	});
 
};
Je ne suis pas spécialiste en extjs. On m'a beaucoup aidé pour ce bout de code et comme j'ai pas mal galéré sans trouver grand chose sur le net, j'ai choisi de le poster si ça peut en aider d'autres, mais je ne suis pas sure d'arriver à faire du 'SAV' dessus.

Merci pour cette communauté
Memelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h25.


 
 
 
 
Partenaires

Hébergement Web