IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Select All dans un Dojo enhancedGrid


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 109
    Par défaut Select All dans un Dojo enhancedGrid
    Salut a tous,

    J'ai cet enhanced grid :

    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
    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

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 109
    Par défaut
    En fait j'ai trouvé dans un tuto , merci quand même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grid.rowSelectCell.toggleAllSelection(true);

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 109
    Par défaut
    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.

  4. #4
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Par défaut
    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...

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 109
    Par défaut
    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.

  6. #6
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 109
    Par défaut
    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 ?

  7. #7
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. Bug dans select all/none
    Par stof dans le forum Servlets/JSP
    Réponses: 36
    Dernier message: 16/03/2010, 17h47
  2. [Dojo] selection d'un item dans grid(dojo)
    Par wafa19 dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 15/12/2009, 20h25
  3. Selection distincte dans un dlookupcombobox
    Par Tyler Durden dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/10/2005, 08h19
  4. Selection listener dans JTable
    Par calypso dans le forum Composants
    Réponses: 3
    Dernier message: 02/08/2004, 17h56
  5. Selection aléatoire dans une fouchette de 10%
    Par RobertDeNiroZ dans le forum Requêtes
    Réponses: 4
    Dernier message: 14/06/2004, 09h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo