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 :

Creation dojox.grid.datagrid programmatical


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre régulier Avatar de moukit233
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    240
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 240
    Points : 123
    Points
    123
    Par défaut Creation dojox.grid.datagrid programmatical
    Salut,
    je veux creer une dojox.grid.datagrid apres clique sur une bouton
    voila mon code :
    en js j'ai mis :
    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
     
    var listeObjets = response.items[0].listeObjets;
                    var layoutGridResultat = "[";
                    for(i=0 ; i<listeObjets.length ; i++) {
                        var nameColonne= listeObjets[i]['label'];
                        var field = listeObjets[i]['id'];
                        if (i == listeObjets.length-1) {
                            layoutGridResultat = layoutGridResultat + "{field: 'field',name: '"+nameColonne+"',width: '200px'}";
                        } else {
                            layoutGridResultat = layoutGridResultat + "{field: 'field',name: '"+nameColonne+"',width: '200px'},";
                        }
                    }
                    layoutGridResultat = layoutGridResultat + "]";
                    dataItems = {
                            label: 'titre',
                            items: listeVal
                    };
                    var data = new dojo.data.ItemFileWriteStore({data: dataItems});
                    // create a new grid:
                    var gridResultat = new dojox.grid.DataGrid({
                        store: data,
                        clientSort: true,
                        rowSelector: '20px',
                        structure: layoutGridResultat
                    },
                    document.createElement('div'));
     
                    // append the new grid to the div "gridContainer4":
                    dojo.byId("gridContainer4").appendChild(gridResultat.domNode);
                    // Call startup, in order to render the grid:
                    gridResultat.startup();
    et ds le view j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <div id="gridContainer4" style="width: 100%; height: 100%;">
    </div>
    je ne sais pas pourquoi je n'oubtien aucune resultat ?

    merci d'avance de m'aider

  2. #2
    Membre confirmé
    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
    Points : 535
    Points
    535
    Par défaut
    Bonjour,

    Ton field est tout le temps le meme. Je pense que ca a une incidence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    layoutGridResultat = layoutGridResultat + "{field: 'field',name: '"+nameColonne+"',width: '200px'}";
    Comme tu recuperes une valeur pour le field.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var field = listeObjets[i]['id'];
    Tu devrais plutot ecrire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    layoutGridResultat = layoutGridResultat + "{field: '"+field+"',name: '"+nameColonne+"',width: '200px'}";

  3. #3
    Membre régulier Avatar de moukit233
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    240
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 240
    Points : 123
    Points
    123
    Par défaut
    Salut,
    Merci pr votre reponse

    en fait j'ai fait ça :
    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
     
    var listeObjets = response.items[0].listeObjets;
    var tabFields = new Array();
    var objField = {field: 'id',name: 'id',width: '150px'};
    tabFields.push(objField);
    for(i=0 ; i<listeObjets.length ; i++) {
          var nameColonne= listeObjets[i]['label'];
          var field = listeObjets[i]['id'];
          var objField = {
                                field: ''+field+'',
                                name: ''+nameColonne+'',
                                width: '150px'
                            };
          tabFields.push(objField);
     }
    var structureGridResultat = tabFields;
    dataItems = {
         label: 'titre',
         items: listeVal
    };
    var data = new dojo.data.ItemFileWriteStore({data: dataItems});
     // create a new grid:
    var gridResultat = new dojox.grid.DataGrid({
           store: data,
           clientSort: true,
           rowSelector: '20px',
           structure: structureGridResultat
    },
    document.createElement('div'));
     
    // append the new grid to the div "gridContainer4":
    dojo.byId("gridContainer4").appendChild(gridResultat.domNode);
    // Call startup, in order to render the grid:
    gridResultat.startup();
    et ça marche si je clique sur la bouton pr la 1 fois il creer la grid
    mais la 2eme il creer aussi grid mais moi je veux juste Actualiser grid ds la 2eme clique pas creer grid

  4. #4
    Membre régulier Avatar de moukit233
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    240
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 240
    Points : 123
    Points
    123
    Par défaut
    Re,
    il me semble que je vais utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (dijit.byId('gridResultat')) {
         //je vais actualise le store grid
    } else {
         //je vais creer la grid
    }
    merci BON DEV

Discussions similaires

  1. [Dojo] recuperer un dojox.grid.DataGrid vide
    Par moukit233 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 28/01/2010, 12h08
  2. [Dojo] Dijit.form.select dans un dojox.Grid.DataGrid
    Par moukit233 dans le forum Bibliothèques & Frameworks
    Réponses: 13
    Dernier message: 19/11/2009, 11h07
  3. [Dojo] onRowDblClick de dojox.grid.DataGrid
    Par Zineb1987_UNI dans le forum Bibliothèques & Frameworks
    Réponses: 9
    Dernier message: 19/09/2009, 16h20
  4. [Dojo] Actualisation grid (dojox.grid.DataGrid)
    Par moukit233 dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 07/09/2009, 10h05
  5. [Dojo] dojox.grid.DataGrid : prise de tete
    Par linotte91 dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 19/06/2009, 15h22

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