|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 10 ![]() |
Bonjour,
J'essaye de faire un tableau dojo, qui au passage de la souris m'ouvre une sorte d'infobulle ou je pourrais rentrer du texte en fonction des mes colonnes. Ces colonnes doivent afficher une image qui change en fonction des données récupérer= 4 images d’états différents. Mais je ne vois pas très bien comment m'y prendre. Voici mon tableau : qui s'affiche. Code :
Merci beaucoup! |
||
|
|
00
|
|
|
#2 | ||
|
Membre éprouvé
![]() Gibot DanielInscription : janvier 2010 Messages : 313 ![]() |
Bonjour,
Je ne vois pas bien ce que vous souhaitez faire. Vous voulez afficher une info bulle (dijit.tooltip ?) au passage de la souris sur le header ou sur les cellules ? L'image doit apparaitre dans la cellule ou dans le tooltip ? Il n'y a pas vraiment de "moyens" pour travailler sur les colonnes comme on pourrait avoir pour les lignes (par exemple onRowClick). Il y a l'event au passage de la souris sur une cellule mais pas sur une colonne. Par contre vous pouvez récupérer le numéro de colonne via cet event. Code :
|
||
|
|
00
|
|
|
#3 | ||||||
|
Invité de passage
![]() Inscription : août 2011 Messages : 10 ![]() |
En effet c'est bien dans la cellule que je voudrais créer une infobulle.
De nouveau voici mon tableau avec un petit changement : Code :
Code :
Code :
- et ensuite afficher une infobulle assez grande pour inserer quelques lignes de texte lorsque l'on passe sur l'image avec la souris. Comment dois je m'y prendre? |
||||||
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Gibot DanielInscription : janvier 2010 Messages : 313 ![]() |
Avec la valeur de votre variable "value" vous avez déjà la valeur de la cellule "state". Inutile de rechercher 'itm.state'. Et si vos images ne s'affichent pas c'est parce que la valeur de state est à "0" et que vous ne faites pas de contrôler pour cette valeur là
En ce qui concerne les "Tooltip", je pense que c'est possible d'en afficher au passage de la souris sur la cellule (pas sur l'image qui est dedans) reste à trouver l'id unique de la cellule. Par contre, toute donnée saisie dans dans le "Tooltip" sera perdue étant donné qu'elle ne peut être liée au dataGrid. Mais il peut y avoir un moyen en créant une colonne "invisible" dans le dataGrid qui pourrait contenir les valeurs. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : août 2011 Messages : 10 ![]() |
Oui en effet la valeur était à 0.
Mais maintenant ca fonctionne très bien. merci beaucoup. Je suis en train de debuter avec le javascript et c'est pas encore très logique pour moi. Pour ce qui concerne le tooltip, je dois créer un id pour chaque cellule? Est ce que ca se fait dans le json? Un grand merci ca m'a bien avancé en tout cas! |
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Gibot DanielInscription : janvier 2010 Messages : 313 ![]() |
Il me semble que dojo, à la création du datagrid avec son contenu, défini un id unique à chaque composant (div, span etc...). Le nom doit être uniqueId je pense mais après faut fouiller dans la pile d'objet qu'il y a
Sinon faut arriver à en définir un et ca par contre je ne sais pas comment c'est possible. Je regarderai d'un peu plus près. |
|
|
00
|
|
|
#7 | |
|
Membre du Club
![]() Inscription : avril 2009 Messages : 72 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 | ||||
|
Membre éprouvé
![]() Gibot DanielInscription : janvier 2010 Messages : 313 ![]() |
Bonjour,
Je pense avoir trouvé un moyen. En tout cas, après quelques tests cela fonctionne plutôt bien (je parle juste de l'affichage de l'infobulle). Au niveau du formatter, à la création de la balise img, j'ai défini un id unique pour chaque image. Par exemple en prenant l'index de la ligne. Code :
Code :
|
||||
|
|
10
|
|
|
#9 |
|
Membre du Club
![]() Inscription : avril 2009 Messages : 72 ![]() |
En tout cas c'est pas mal comme artifice et ça peut servir à d'autres ! Ca me donne des idées tout ça
|
|
|
00
|
|
|
#10 | ||||
|
Invité de passage
![]() Inscription : août 2011 Messages : 10 ![]() |
C'est très bien detaillé merci mais je pense que je suis la seule à ne pas comprendre ou je dois mettre ce bout de code.
Code :
Et par exemple je declare un id différent à chaque fois: Code :
|
||||
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Inscription : avril 2009 Messages : 72 ![]() |
Salut, as tu regardé un peu la gestion des évènements que propose Dojo en javascript ?
Voici un tuto récent à ce sujet : http://dojotoolkit.org/documentation...ls/1.6/events/ Ensuite tu comprendras que le code de Daniel est exécuté sur l'évènement "onCellMouseOver" de ta grille dojox.grid.DataGrid (cf. api : http://dojotoolkit.org/api/, dojox.grid.DataGrid => Event Summary). As-tu un fichier javascript chargé dans le header de ta page html et dans lequel tu codes tes traitements Dojo ? |
|
|
00
|
|
|
#12 | ||||
|
Invité de passage
![]() Inscription : août 2011 Messages : 10 ![]() |
Oui j'ai bien un fichier javascript a part ou je peux coder tout mon javascript.
J'ai compris que je dois mettre le javascript dans ce fichier, mais ce que je ne comprend pas c'est comment définir l'id. Et a quoi sert cette ligne, comment l’interpréter: Code :
Code :
|
||||
|
|
00
|
|
|
#13 | |||||||||
|
Membre du Club
![]() Inscription : avril 2009 Messages : 72 ![]() |
Citation:
Citation:
Ensuite, ces lignes de code écrites par Daniel ne sont qu'un exemple des différents traitements que l'on peut effectuer en fonction de la valeur de la cellule sur laquelle la souris passe : Code :
D'où sortent ces lignes de code ? : Citation:
A + |
|||||||||
|
|
00
|
|
|
#14 | ||||||||
|
Membre éprouvé
![]() Gibot DanielInscription : janvier 2010 Messages : 313 ![]() |
Bonjour !
Citation:
Concernant la création d'un id différent à chaque fois, le formatter se charge de créer un id différent pour chaque image en utilisant l'index de la ligne. Si j'ai bien compris vous n'avez qu'une image par ligne... Citation:
Code :
function renderActionCellContent(value, index){
|
||||||||
|
|
10
|
Copyright © 2000-2012 - www.developpez.com