Abrir una ventana popup con un botón en ASP.NET Fecha: 07/Feb/2005 (03/02/2005) |
|
Muchas veces queremos las apariencias de nuestras páginas totalmente originales de forma que no parezcan a otras páginas, el problema de un hipervínculo es que es un control que no se puede personalizar mucho y nos limita demasiado, aquí se explica como colocar una función de javascript en un botón de los controles Web para ASP.NET para así personalizar nuestros controles y que a la vez puedan hacer ejecuciones mucho más amplias gracias a las ventajas que nos ofrece el JavaScript como lenguaje...
Primero nos creamos un WebForm en ASP.NET, en este caso de VB.NET y le agregamos un botón:
<asp:Button id="btnPopup" runat="server" Text="Microsoft.com!!" BackColor="White"></asp:Button>
Luego tendremos que asignar la acción a realizar con este botón para esto haremos dos pasos primero declarar la función JavaScript y especificar que se quiere hacer, en nuestra página en vista HTML agregamos nuestro script, sería:
<SCRIPT LANGUAGE="JavaScript">
function url() {
hidden = open('http://www.microsoft.com','NewWindow','top=0,left=0,width=800,height=600,status=yes,resizable=yes,scrollbars=yes');
}
</SCRIPT>
Luego en nuestra página de CodeBehind colocamos nuestro código al botón, para esto agregamos en el evento Page_Load de nuestra página un atributo al botón de esta forma:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
btnPopup.Attributes.Add("onclick", "javascript:url();")
End Sub
El código HTML de la página completa sería
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>Página con PopUp</title>
<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
<meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<SCRIPT LANGUAGE="JavaScript">
function url() {
hidden = open('http://www.microsoft.com','NewWindow','top=0,left=0,width=800,height=600,status=yes,resizable=yes,scrollbars=yes');
}
</SCRIPT>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:Button id="btnPopup" runat="server" Text="Microsoft.com!!" BackColor="White"></asp:Button>
</form>
</body>
Y el código de la página de CodeBehind en este caso WebForm1.aspx.vb sería:
Public Class WebForm1
Inherits System.Web.UI.Page
Protected WithEvents btnPopup As System.Web.UI.WebControls.Button
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
btnPopup.Attributes.Add("onclick", "javascript:url();")
End Sub
End Class