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 :

[data grid] L'affichage d'une cellule différent de sa valeur


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Par défaut [data grid] L'affichage d'une cellule différent de sa valeur
    Bonjour,

    J'ai une une data.grid dojox dans une table qui me sert à administrer une base de données. La table que je souhaite modifier possède des laisons (par ID) avec d'autres tables. Pour plus de facilité pour l'utilisateur je souhaite afficher le nom de l'élément lié et non son ID mais quand même envoyer son ID.

    Exemple :
    J'ai une table voiture avec
    voiture_id
    voiture_nom
    constructeur_id

    et une table constructeur avec
    constructeur_id
    constructeur_nom
    Je voudrais que dans ma cellule 'constructeur_id' soit affiché 'constructeur_nom' mais que la donnée enregisrée dans le store soit bien l'id et pas le nom.

    J'ai à moitié résolu mon problème en utilisant un select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <th width="100px" field="constructeur_id" cellType="dojox.grid.cells.Select" options="Renault, Peugeot, citroen" values="1,2,3">
    Quand l'utilisateur double-clique pour modifier le champs, c'est bon. Mais à l'affichage s'il veut vérifier cette cellule, il est obligé de connaître l'id ou de doublie-cliquer.

    Avez-vous une solution ?
    Merci de votre aide !

  2. #2
    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,

    Désolé mais je ne comprends pas

    Quand l'utilisateur double-clique pour modifier le champs, c'est bon. Mais à l'affichage s'il veut vérifier cette cellule, il est obligé de connaître l'id ou de doublie-cliquer.
    Tu parles du même datagrid ? Quand il modifie, le nom s'affiche dans le select mais dès qu'il sort de la cellule ca affiche l'id ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Par défaut
    Bonjour Daniel ! et merci de ta réponse !

    Tu parles du même datagrid ?
    Oui je parle toujours du même et unique datagrid

    Quand il modifie, le nom s'affiche dans le select mais dès qu'il sort de la cellule ca affiche l'id ?
    Oui, et c'est là mon problème. Je voudrais "masquer" cette utilisation des id à l'utilisateur pour ne lui laisser que les choix.
    Lorsque la grille s'affiche, ce sont les ID ('value' du select) qui s'affichent et non le nom ('option' du select). Et moi j'aimerais n'afficher à l'utilisateur que les noms (pour plus de simplicité pour lui) et lorsqu'il modifie une ligne (et qu'il change de constructeur) envoyer l'ID plutôt que le nom.

    Pour le moment j'ai contourné le problème en changeant la cellule par constructeur_nom au lieu de constructeur_id et dans ce cas là je fais un traitement PHP pour retrouver l'ID mais je trouve ça dommage et j'aimerais bien que ce soit parfait !

    Désolé mais je ne comprends pas
    J'espère avoir été plus clair !

  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,

    Je te propose le "formatter". Je ne connais pas trop mais il me semble que ca peut correspondre à ce que tu recherches.

    dans ta balise où il y a le select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function formater(item){
          return isNan(item) ? item : item
    }
    ...
    <th width="100px" field="constructeur_id" cellType="dojox.grid.cells.Select" options="Renault, Peugeot, citroen" values="1,2,3"
    formatter='formater'>
    Après le "?" cela correspond au "then" et après les ":" au "else" d'une condition "if".
    Je n'ai pas trouvé pour afficher l'option et non la "value" pour l'instant.

  5. #5
    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
    Alors j'ai trouve un moyen mais il faut créer le tableau en javascript.
    Voici un exemple :

    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
    46
    47
     
    <span dojoType="dojo.data.ItemFileWriteStore" jsId="store3" url="http://www.dojotoolkit.org/reference-guide/_static/dojo/dijit/tests/_data/countries.json">
    </span>
    <script language='javascript'>
    function valeur(item){
    	return isNaN(item) ? item : item;
    }
    function chargement(){
    	var layout = [{
    		field: 'name',
    		name: 'Pays/Continent',
    		width: '100px'
    	},{
    		field:'type',
    		name: 'Type',
    		width:'80px',
    		type : dojox.grid.cells.Select,
    		editable : true,
    		options : ["country","city","continent"],
    		values : ["1","2","3"],
    		formatter : function(item){
    			if(!isNaN(item)){
    				for(valeur in this.values){
    					if(this.values[valeur] == item){
    						maValeur = this.options[valeur];
    					}
    				}
    			}
    			return isNaN(item) ? item : maValeur;
    		}
    	}];
     
    	var tableau = new dojox.grid.DataGrid({
    		id : 'monTableau',
    		store : store3,
    		structure : layout,
    		rowSelector : '20px',
    		autoWidth : true,
    		query:'{}',
    		clientSort : true
    	}, 
    	document.createElement('div'));
        dojo.byId("tableauRes").appendChild(tableau.domNode);
    	tableau.startup();
    }
    </script>
    <div id='tableauRes' style='width:700px;height:700px'></div>
    Je ne sais pas si la valeur retournée est l'id. Je n'ai pas de programme comme ce que tu fais, je te laisse donc faire un test

  6. #6
    Membre éclairé 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
    Par défaut
    Salut,
    juste un petite remarque :
    pr le formatteur tu peux faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function formateur(inDatum)
    {
        return this.options[dojo.indexOf(this.values, inDatum)];  
    }

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/04/2007, 10h14
  2. [D6][TValueListEditor] Modifier l'affichage d'une cellule
    Par Lung dans le forum Composants VCL
    Réponses: 5
    Dernier message: 21/02/2007, 09h26
  3. affichage d'une cellule dans un text box
    Par magictom42 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/11/2006, 11h10
  4. [Excel] Affichage d'une cellule ayant pour valeur 0
    Par repié dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/02/2006, 10h38
  5. Affichage d'une cellule excel
    Par cciocc dans le forum ASP
    Réponses: 2
    Dernier message: 17/05/2005, 10h17

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