Redazione
a- a+

Popup Javascript in ASP.NET

Presentiamo il codice completo per aprire un popup con ASP.NET

Una finestra popup è un elemento lato client. Pertanto la necessità di una finestra popup comporta che nella nostra pagina asp.net sia presente codice javascript:

<script language="javascript" type="text/javascript">

    function apriFinestra () {

        window.open(‘presentazione.aspx’, ‘Presentazione’, ‘‘, ‘‘);

    }

</script>

possiamo utilizzare la funzione apriFinestra  () per aprire la pagina presentazione.aspx in una finestra popup :

<asp:HyperLink ID="selcatHyperLink" runat="server" NavigateUrl="javascript:apriFinestra()">Seleziona</asp:HyperLink>

Con il codice su citato abbiamo creato una pagina con un link che apre una finestra popup in cui l’utente leggerebbe una breve presentazione del sito in questione.

Questo primo esempio di popup è abbastanza semplice ma possiamo renderlo più interessante e completo se oltre che fornire un testo di presentazione, la pagina presentazione.aspx chieda anche di dare un valore circa l’interesse e l’utilità dell’informazione fornita, una sorta di indice di gradimento. Pertanto la finestra popup dovrà restituire un valore, nel nostro caso la preferenza espressa dal visitatore.

L’oggetto javascript window.opener è quello di cui abbiamo bisogno affinché la finestra chiamata abbia accesso al chiamante. Nella pagina presentazione.aspx dobbiamo indicare di richiamare una funzione javascript presente nella finestra chiamante:

window.opener.preferenza(‘grado’);

window.close();

Preferenza” è una funzione javascript implementata nella finestra chiamante. Il grado di preferenza espresso nella pagina presentazione.aspx compresa nella popup viene inserito in un controllo server asp.net che potrebbe avere un id client generato dinamicamente dal server o dal database se l’informazione sulla preferenza viene registrata in un database. Questo ci obbliga a inserire il codice javascript nel codice dell’evento page_load :

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Not IsPostBack Then

        Dim scr As String = "<script language=‘javascript’> function preferenza(grado) {document.getElementById(‘" & preferenzaTxt.ClientID & "‘).innerText = grado;} </script>"

        ClientScript.RegisterClientScriptBlock(Me.GetType, "preferenza", scr)

   End If

End Sub

Allo stesso modo nella pagina presentazione.aspx il controllo che richiama “preferenza” potrebbe essere un controllo server come ad esempio un TreeView , un button , una Listbox o una Combobox che fa scattare un evento postback. Per permettere al server di eseguire sul client un codice javascript, possiamo utilizzare ClientScript.RegisterStartupScript che fa partire uno script sul client.

Protected Sub CategorieTreeView_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CategorieTreeView.SelectedNodeChanged

    ClientScript.RegisterStartupScript(Me.GetType, "RitorvaValore", "<script language=‘javascript’> window.opener.preferenza(‘" & CategorieTreeView.SelectedValue & "‘); window.close(); </script>")

End Sub

In questo modo abbiamo integrato in una pagina lato server, come sono le pagine asp.net, del codice lato client, come javascript. Questa integrazione server client, rende flessibile e più potente la programmazione delle pagine web, aumentando il grado di interattività di un sito web.



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Redazione
Condividi le tue opinioni su questo articolo!