PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → image de fond cellule
image de fond cellule
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.

@+