locked
Comment ouvrir une nouvelle fenêtre avec un click de bouton RRS feed

  • Discussion générale

  • Afin d’ouvrir une nouvelle fenêtre on utilise la fonction windows.open()

    On va créer une page asp.net avec deux boutons. Le premier ouvrira une nouvelle fenêtre avec un postback au serveur et le deuxième ouvrira une nouvelle fenêtre sans postback.

     

    Voici le code de la page :

    <body>
        <form id="form1" runat="server">
        <div>    
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
            <asp:Button ID="Button2" runat="server"  Text="Button" />    
        </div>
        </form>
    </body>

     

     

     

    La première modalité d’ouvrir la fenêtre implique un postback au serveur. On ajoute le code pour l’évènement Click du premier bouton :

     

    protected void Button1_Click(object sender, EventArgs e)
            {
                Type cstype = this.GetType(); 
                StringBuilder sb = new StringBuilder();
                sb.Append("<script>");            
                sb.Append("window.open('http://msdn.microsoft.com');");
                sb.Append("</script>");            
                ClientScript.RegisterStartupScript(cstype, "MyScript", sb.ToString()); 
            }

     

    Cette méthode enregistre le script ‘MyScript’ comme script de startup dans la page. Ce script appelle la fonction window.open(). Parce-que le bouton cause le postback, le script est lance au rechargement de la page. MSDN offre une description détaillée sur la fonction ClientScript.RegisterStartupScript  

     

    La deuxième méthode implique l’appel de la fonction window.open() sans postback. Au chargement de la page, dans la méthode Load, on ajoute l’attribut onclick pour le deuxième bouton. La fonction window.open() sera appelée a chaque click sur le bouton. La commande ‘return false ;’ donne la possibilité de lancer window.open() sans recharger la page :

    protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    this.Button2.Attributes.Add("onclick", "window.open('http://msdn.microsoft.com'); return false;");
                }         
            }

     

     

    Pour plusieurs informations, visitez la page Foire aux Questions – ASP.NET

     
    Alex Petrescu - MSFT
    mardi 23 mars 2010 14:20
    Modérateur