#695 - Recuperare con ASP.NET i dati di una popup

Spesso viene chiesto in che modo recuperare i dati inseriti in una finestra di popup per utilizzarli lato server sulla pagina che lo ha aperto.
Una delle tecniche è quella mostrata di seguito e fa uso di alcune funzioni javascript per gestire i valori di ritorno.
L'idea è che la pagina popup che legge i dati li invii alla pagina che l'ha aperta tramite querystring, la quale li utilizza lato server per le operazioni le servono.
Ecco la pagina 1:

<%@ Page language="c#"  %>
<script language="C#" runat="server">
void Page_Load(object sender, EventArgs e)
{
  MostraPopUp.Attributes["OnClick"] = "javscript:window.open(\"DimmiIlNome.aspx\",null, \"height=200,width=400,status=yes,toolbar=no,menubar=no,location=no\");";
 
  if (Request.QueryString["Nome"] != String.Empty)
    lblNome.Text = "Nome: " + Request.QueryString["Nome"];
}
</script>

<form runat="server">
<asp:Button id="MostraPopUp" runat="server" Text="Chiedi il nome" ></asp:Button><br>
<asp:Label id="lblNome" runat="server"></asp:Label>
</form>

Ed ecco la pagina Popup:

<script language="C#" runat="server">
void Page_Load(object sender, EventArgs e)
{
  btnChiudiFinestra.Attributes["OnClick"] = "javscript:ClosePopUp();";
}
</script>
<script language="javascript">
function ClosePopUp()
{
  var txt = document.getElementById("txtNome");
  window.opener.document.location.href = "PaginaUno.aspx?Nome=" + txt.value;
  window.close();
}
</script>

<form runat="server">
<asp:TextBox id="txtNome" runat="server"></asp:TextBox>
<asp:Button id="btnChiudiFinestra" runat="server" Text="Chiudi"></asp:Button>
</form>


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

mrub scrive:
#695 - Recuperare con ASP.NET i dati di una popup

Ho riadattato lo script sostituendo:window.opener.document.location.reload(false);a:window.opener.document.location.href = ...tutto funziona ...
mercoledì 13 aprile 2005 | 5 risposte

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC