|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Débuté par nico, 17 sep. 2004 15:03 - 4 réponses |
| |
| | | |
|
| |
Posté le 17 septembre 2004 - 15:03 |
bonjour a tous,
je souhaiterais changer dynamiquement l'image de fond d'un champs cellule mais cette propriété n'existe pas !
Quelqu'un connait il un script me permettant de le réaliser ?
Merci d'avance ! |
| |
| |
| | | |
|
| | |
| |
Posté le 17 septembre 2004 - 17:57 |
nico a écrit :
bonjour a tous, je souhaiterais changer dynamiquement l'image de fond d'un champs cellule mais cette propriété n'existe pas ! Quelqu'un connait il un script me permettant de le réaliser ? Merci d'avance !
J'ai déjà répondu sur la couleur de fond d'une cellule. Le principe est le même, il faut jouer sur les styles en tenant compte de la structure du code produit par webDev.
//Méthode 1 juste l'image de fond et sa position // Code du bouton d'appel fondCellule(Cellule1..Alias,"http://www.google.fr/intl/fr_fr/images/logo.gif","no-repeat") //Source de la fonction JS function fondCellule(pObj,pUrl, pRepeat){ var oCel =document.getElementById(pObj).firstChild.firstChild.firstChild; oCel.style.backgroundImage='url("'+pUrl+'")'; oCel.style.backgroundRepeat=pRepeat; }
//Méthode globale pour modifier tous les attribut de style d'un objet, donc aussi son background // Code bouton d'appel styleCellule(Cellule1..Alias,"background-image:url(
);background-repeat: no-repeat; background-position: 10px 10px;") //Source de la fonction JS function styleCellule(pObj,pStyle){ document.getElementById(pObj).firstChild.firstChild.firstChild.style.cssText=pStyle; } -------------------------------------------------- Je pense que la deuxième méthode est la meilleure - elle permet de modifier tous les attributs d'un coup - elle permet d'utiliser directement la syntaxe CSS normale, sans chercher l'équivalent des noms css en javascript. - la fonction est plus simple ======================================================== En fait il faudrait ajouter une fonction qui retourne l'objet à manipuler en fonction de l'alias et de son type webDev De cette façon les appels sont les mêmes pour tout les types webDev et en cas de modification de la structure du code webDev, une seule fonction à modifier pour adapter le code.
//Source de la fonction JS objetPointeur (Juste pour cellule, mais c'est facile à completer) function objetPointeur(pObjetNom,pObjetType){ switch(pObjetType) { case "CEL": return document.getElementById(pObjetNom).firstChild.firstChild.firstChild; break; default: return document.getElementById(pObjetNom) break; } } --------- Les appels de fonctions deviennent: // Code bouton d'appel fondCellule( objetPointeur( Cellule1..alias, "CEL" ), "
", "no-repeat" ) //Source de la fonction JS function fondCellule(pObj,pUrl, pRepeat){ pObj.style.backgroundImage='url("'+pUrl+'")'; pObj.style.backgroundRepeat=pRepeat; } // Code bouton d'appel styleCellule(objetPointeur(Cellule1..Alias,"CEL"),"background-image:url(
);background-repeat: no-repeat; background-position: 10px 10px;") //Source de la fonction JS function styleCellule(pObj,pStyle){ pObj.firstChild.firstChild.firstChild.style.cssText=pStyle; } |
| |
| |
| | | |
|
| | |
| |
Posté le 20 septembre 2004 - 13:16 |
Merci pour la rapidité de ta réponse !
La méthode semble correcte mais je n'arrive pas à la faire fonctionner !
J'ai opté pour ta 1ere proposition qui me semblait plus simple. J'ai crée une Procédure locale fondCellule (Navigateur - JS) que j'appelle dans un bouton (Navigateur - W langage) mais rien ne fonctionne. Ma page est en AWP, cela pourrait il poser un pb ? Merci d'avance... |
| |
| |
| | | |
|
| | |
| |
Posté le 20 septembre 2004 - 16:43 |
nico a écrit :
Merci pour la rapidité de ta réponse !
La méthode semble correcte mais je n'arrive pas à la faire fonctionner !
J'ai opté pour ta 1ere proposition qui me semblait plus simple. J'ai crée une Procédure locale fondCellule (Navigateur - JS) que j'appelle dans un bouton (Navigateur - W langage) mais rien ne fonctionne. Ma page est en AWP, cela pourrait il poser un pb ? Merci d'avance...
Pour AW¨P , je ne sais pas. N'ayant pas (pour le moment) renouvelé mon abonnement à la LST je n'utilise pas AWP. Pour récupérer l'objet 'cellule', il faut que webDeb le déclare avec un identifiant ( id=)... Par défaut webdev n'en met pas pour les cellules. Il suffit d'ajouter une bordure à la cellule, pour que webdev lui donne un ID, qu'il va utiliser pour le style du cadre. Il est possible que le problème vienne le là.
Si vous utilisez la deuxième méthode, le code de la fonction faux Il faut se méfier des couper/coller! Puisque qu'on travaille sur l'objet , inutile d'utiliser les fisrtchild. pObj.style.cssText=pStyle; est suffisant
//Source de la fonction JS function styleCellule(pObj,pStyle){ pObj.style.cssText=pStyle; }
De toutes façons, je vous envoie à votre adresse émail, ma fenêtre de test. |
| |
| |
| | | |
|
| | |
| |
Posté le 20 septembre 2004 - 18:14 |
C'est bon ça marche ! Tout ça a cause d'un cadre !!!!
Merci pour ton aide, je m'en serais jamais sorti tout seul.
@+ |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|