Window.opener [Résolu]

Signaler
Messages postés
5
Date d'inscription
dimanche 20 mars 2005
Statut
Membre
Dernière intervention
23 mars 2005
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Je développe sur ASP.NET + code Behind C# j'ai crée une feuille popup dans celle-ci j'ai un bouton qui me valide un nouven enregistrement dans une BD
Cet enregistrement doit être incorporé dans un Droplist situé sur ma page mère(appelante)
Pour la mise à jour de ce droplist j'appelle une fonction "ChargerDrop()"
Question: un click sur le bouton de mon popup doit appeler ma fonction "ChargerDrop()" pour la mise à jour de mon Droplist
j'ai entendu parler d'eun script client du style window.opener. etc... mais je n'ai pas la syntaxe ???

Quelqu'un aurait-il la réponse ????? Merci

billy

6 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
C'est normal, je pense, car il te met le focus quoi que tu fasses sur la page et non sur le controle ...



au pire, au lieu de faire windows.focus() t'as qu'a faire
windows.toninput.focus() mais je suis pas sur qe ca resout ton
problème.



Va voir sur www.javascriptfr.com car la niveau javascript je suis loin d'etre parfait.

<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Ton problème n'étant pas fortement lié au C#, je pense que tu auras plus de réponses en posant ta question sur les forums d' ASPFr.com :-)

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
il faut que ChargerDrop soit une fonction javascript, pour l'appeller a partir de ta page enfant :



window.opener.ChargerDrop();



dans ta page parent



function ChargerDrop(){alert('test');}



en faisant ca, ca va t'afficher un messagebox. Ensuite il faut qeu
ChargerDrop repost le formulaire, pour que coté serveur le serveur se
rende compte que t'as appellé une fonction.



C'est assez compliqué à comprendre au début, mais une fois le principe
assimilé ca se fait facilemement. Mais comme le dit Coq, la question
concerne asp et j'ai deja répondu à des questions du genre sur le
forum, fait une recherche la bas, tu trouveras peut etre ton bonheur,
sinon je me ferais le plaisir de t'aider

<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
5
Date d'inscription
dimanche 20 mars 2005
Statut
Membre
Dernière intervention
23 mars 2005

Merci pour ta réponse et en effet ma fonction ChargerDrop() n'est pas un fonction javascript mais une fonction C# d'ou mon PB
Cependant ta solution eswt vraiment compliqué et surtout pas très convivial pour l'utilisateur qui se voit apparaitre une 3e feuille (messgaBox).
La seule solution que voit est de recharger la feuille appelante par :window.opener.location.reload() ça marche mais l'utilisateur a déjà rempli son formulaire il perd tout par le rechargement
je suis étonné qu'il n'y ait pas un autre moyen pour recharger mon droplist

billy
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Le MessageBox, c'etait un exemple, en réalité tu ne vas pas faire
afficher un messagebox à ton client, mais tu vas faire executer une
fonction qui va reposter le formulaire.



Pour cela, regarde comment un linkbutton fonctionne, tu verras que sur
le OnClick, il execute une fonction javascript
__DoPostback('sender','e')



Cette fonction repost le formulaire, du coté de la page, tu peux
aisement recuperer les infos passé dans l'appel javascript, pour savoir
qu'est-ce qui a fait le postback.

Si ton formulaire est correcte tu ne devrais pas perdre les
informations du formulaire, il faut pour cela que tes champs soient
déclaré coté serveur, et que leur attribut enableViewstate soit à true
(valeur par défaut) ainsi les valeurs contenus dans tes champs seront
sauvegardés.




<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
5
Date d'inscription
dimanche 20 mars 2005
Statut
Membre
Dernière intervention
23 mars 2005

Génial ça marche !!!
juste un dernier petit conseil.
sur ma feuille popup j'ai installé un input pour que l'utilisateur puisse rentrer une valeur
j'ai dans la balise BODY de mon popup installé onblur="window.focus()" pour obligé l'utilisateur à s'occuoper d'abord de rentrer sa valeur avnt toute autre chose.
Pb: l'input dans ces conditions n'accepte aucune saisie comme si il était en readOnly
??????

billy