Window.opener

Résolu
billys600 Messages postés 5 Date d'inscription dimanche 20 mars 2005 Statut Membre Dernière intervention 23 mars 2005 - 20 mars 2005 à 09:47
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 20 mars 2005 à 18:16
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

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
20 mars 2005 à 18:16
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
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
20 mars 2005 à 10:13
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#
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
20 mars 2005 à 13:21
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
0
billys600 Messages postés 5 Date d'inscription dimanche 20 mars 2005 Statut Membre Dernière intervention 23 mars 2005
20 mars 2005 à 15:51
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
20 mars 2005 à 17:03
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
0
billys600 Messages postés 5 Date d'inscription dimanche 20 mars 2005 Statut Membre Dernière intervention 23 mars 2005
20 mars 2005 à 17:23
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
0
Rejoignez-nous