2009-04-09 3 views
2

J'utilise asp.net webforms 2.0, C#.Comment retourner une valeur à partir d'une fenêtre pop-up

Ce que je besoin est un moyen simple et élégant pour faire ce qui suit:

utilisateur clique sur un élément A formulaire électronique; Webform B apparaît; L'utilisateur interagit avec le formulaire Web B; Lors de la fermeture du formulaire Web B, probablement par un bouton de soumission, l'élément source dans le formulaire Web a est mis à jour avec une valeur du formulaire Web B.

Quelles technologies seraient impliquées ici? Mis à part le Javascript et C#, bien sûr. Puis-je le faire sans Ajax?

ÉDITÉ:

Pour clarifier les choses, Webform B enregistre les données entrées dans la base de données, par exemple les informations client, il reviendra avec le numéro de client (après l'enregistrement), ce numéro de client doit être passé à la fenêtre parent, qui devrait rafraîchir après cela.

Répondre

1

Vous pouvez utiliser JavaScript:

<script language="javascript"> 
window.opener.location.reload(); 
self.close(); 
</script> 

Le code ci-dessus montre comment fermer la fenêtre « ouvreur », mais il devrait vous donner l'idée générale. (Ce code est dans la fenêtre Popup). Vous pouvez utiliser la même méthode pour transmettre des valeurs à la fenêtre 'opener' en y appelant la fonction JavaScript.

<script language="javascript"> 
window.opener.functionA('ABC123');  
</script> 

Si vous voulez passer une variable à partir de votre ASP dans la fonction JavaScript, utilisez:

window.opener.functionA('<%=userId%>'); 

ou

var userId = '<%=userId%>'; 
window.opener.functionA(userId); 

Hope that helps!

+0

Merci. J'aurais dû me clarifier, voir mes modifications. – sarsnake

-1

function webFormAClick(){ var theReturnValue = window.showModalDialog("webFormB.html", myArguments, ''); }

1

Si vous utilisez ASP.NET 2.0, vous pouvez avoir le deuxième poste de page retour à la première, puis le détecter avec IsCrossPagePostBack.

+0

merci de le considérer. – sarsnake

Questions connexes