Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Dojo
Dojo Forum d'entraide sur le framework Dojo
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 24/05/2011, 16h03   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2009
Messages : 109
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 109
Points : 11
Points : 11
Par défaut Select All dans un Dojo enhancedGrid

Salut a tous,

J'ai cet enhanced grid :

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
var grid = null;
        dojo.addOnLoad(function() {
 
        	document.getElementById('dtCP').value = '<?=date ( "d/m/Y", strtotime ( $_SESSION ['dateducomite'] ) );?>';
            // our test data store for this example:
            store = new dojo.data.ItemFileWriteStore(
                     { url: 'visualiser/visualiser' , method:'POST' });
 
            // set the layout structure:
            var layout = [
				{ name: "SI", field: "si", width: "70px" },
				{ name: "N°OP", field: "n_op", width: "70px" },
				{ name: "Libellé Opération", field: "lib_op", width: "150px"},
				{ name: "Motif prog", field: "motif_prog", width: "70px"},
				{ name: "Bénéficiaire", field: "benef", width: "120px" },	
			];
 
            // create a new grid:
            grid = new dojox.grid.EnhancedGrid({
                query: {
            	n_op: '*'
                },
                store: store,
                rowSelector: '15px',
                structure: layout,
                rowsPerPage: 20,
                clientSort: true,
                plugins: {                
                    indirectSelection: {
                        name: "Séléction",
                        width: "70px",
                        styles: "text-align: center;"
                    }
                    ,selectable: true
                }
               , selectionMode:'extended'
            },
            document.createElement('div'));
 
            // append the new grid to the div "gridContainer4":
            dojo.byId("gridDiv").appendChild(grid.domNode);
 
            // Call startup, in order to render the grid:
            grid.startup();
        });
J'aimerai ajouter une fonction qui cocherait toutes les cases du grid. Je ne sais récupérer que les cases sélectionnées , pas les autres
Si vous savez comment faire

Merci d'avance
Knarf64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 16h13   #2
Candidat au titre de Membre du Club
 
Inscription : octobre 2009
Messages : 109
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 109
Points : 11
Points : 11
En fait j'ai trouvé dans un tuto , merci quand même :

Code :
grid.rowSelectCell.toggleAllSelection(true);
Knarf64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 16h39   #3
Candidat au titre de Membre du Club
 
Inscription : octobre 2009
Messages : 109
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 109
Points : 11
Points : 11
Hum, un problème persiste,

Le code du select all permet de voir visuellement toutes les cases cochées, cependant, avec la méthode suivante : grid.selection.selected
je ne récupere que les rows cochés , qui sont présent sur la page ( sans le scroll ) , en fait le nombre correspond a celui -ci : rowsPerPage: 20

Comment manipuler TOUS les rows qui pourtant sont bel et bien "visuellement" sélectionnés.
Knarf64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 08h51   #4
Membre éprouvé
 
Gibot Daniel
Inscription : janvier 2010
Messages : 313
Détails du profil
Informations personnelles :
Nom : Gibot Daniel
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2010
Messages : 313
Points : 439
Points : 439
Bonjour,

Avec un fetch sur le store ca n'irait pas ? Si le but c'est manipuler les données dans les lignes, je pense que ca devrait convenir...
Daniel_Gibot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 13h50   #5
Candidat au titre de Membre du Club
 
Inscription : octobre 2009
Messages : 109
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 109
Points : 11
Points : 11
Le souci, à moins que je connaisse la syntaxe qui le permet, c'est qu'avec le store, je ne peux connaitre les rows sélectionnés, à l'inverse du grid, et que le problème est le même si l'utilisateur par exemple : sélectionne tout, décoche une case. Je ne pourrais exporter que les rows de la première page.

Y'a-t-il un moyen de recuperer les tous les rows sélectionnés via le store, vu qu'avec le grid on ne les obtient pas tous ?

Cordialement.
Knarf64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 16h55   #6
Candidat au titre de Membre du Club
 
Inscription : octobre 2009
Messages : 109
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 109
Points : 11
Points : 11
Personne ne connaît la solution a ce problème ?
J'ai bien tenté d'augmenter le nombre de rows per page , mais c'est bien trop long a charger des qu'on dépasse les 50 rows.

Un moyen d'obtenir tous les champs sélectionnés et non pas que ceux de la page, personne n'en connaît ?
Knarf64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 08h58   #7
Membre éprouvé
 
Gibot Daniel
Inscription : janvier 2010
Messages : 313
Détails du profil
Informations personnelles :
Nom : Gibot Daniel
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2010
Messages : 313
Points : 439
Points : 439
En faisant un fetch, oui je persiste.
Sur le store du datagrid, on obtient l'index de la ligne et du coup on peut identifier si la case est cochée ou non. Reste à savoir si cela scanne les lignes qui ne sont pas affichées.
Désolé, je n'ai pas le temps de faire de test.
Ca devrait donner un truc du genre :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
function getItems(){
        var grid = dijit.byId('monGrid');
	var items = "";
	var count = grid.rowCount;
	for(var i = 0 ; i < count ; i++){
		var ligne = "" 
		var item = grid.getItem(i);
			for(elem in item){
				ligne += elem + " = " + item[elem] + "/";
			}
		items += ligne + "\r\n";
	}
	alert(items);
}
"grid.getItem(i)" va récupérer toutes les valeurs contenues dans une ligne. Du coup, il doit être possible d'identifier la valeur contenu dans la colonne où il y a la case à cocher. Par contre, je ne sais pas si ca va scanner toutes les lignes du grid ou juste celles de la page affichée.
Daniel_Gibot 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 14h18.


 
 
 
 
Partenaires

Hébergement Web