Este código me lo encontré en The Code Project y lo puedes encontrar aquí en su versión completa en inglés.
– Message Box & Confirmation Box
Esta aplicación te crea un componente .dll que debe ser agregado a las referencias de nuestro programa ASP.NET.
Importante: No importa el lenguaje de tu aplicación ASP.NET, cuando se importan referencias estas pueden estar en lenguajes diferentes al del programa.
Mensaje de Alerta:
Mensaje de Confirmación:
Primero que todo debes crear un nuevo proyecto Class Library en C#. Luego agregas esta clase a tu proyecto ASP.NET.
using System; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel; using System.Text;namespace Mensajes { /// <summary> /// Summary description for WebCustomControl1. /// </summary> [DefaultProperty("Text"), ToolboxData("<{0}:msgBox runat=server></{0}:msgBox>")] public class msgBox : System.Web.UI.WebControls.WebControl { //private string msg; private string content; [Bindable(true), Category("Appearance"), DefaultValue("")] public void alert(string msg) { string sMsg = msg.Replace( "n", "\n" ); sMsg = msg.Replace( """, "'" ); StringBuilder sb = new StringBuilder(); sb.Append( @"<script language='javascript'>" ); sb.Append( @"alert( """ + sMsg + @""" );" ); sb.Append( @"</script>" ); content=sb.ToString(); } //confirmation box public void confirm(string msg,string hiddenfield_name) { string sMsg = msg.Replace( "n", "\n" ); sMsg = msg.Replace( """, "'" ); StringBuilder sb = new StringBuilder(); sb.Append( @"<INPUT type=hidden value='0' name='" + hiddenfield_name + "'>"); sb.Append( @"<script language='javascript'>" ); sb.Append( @" if(confirm( """ + sMsg + @""" ))" ); sb.Append( @" { "); sb.Append( "document.forms[0]." + hiddenfield_name + ".value='1';" + "document.forms[0].submit(); }" ); sb.Append( @" else { "); sb.Append("document.forms[0]." + hiddenfield_name + ".value='0'; }" ); sb.Append( @"</script>" ); content=sb.ToString(); } /// <summary> /// Render this control to the output parameter specified. /// </summary> /// <param name="output"> The HTML writer to write out to </param> protected override void Render(HtmlTextWriter output) { output.Write(this.content); } } }
El siguiente paso será compilar la aplicación, lo cual nos crea el dll que necesitaremos mas adelante.
Ahora en nuestro programa ASP vamos a importar este dll, y luego de hacer esto solo debemos implementarlo de una forma muy sencilla.
En nuestra página .aspx registramos la referencia
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="PruebaASPVB.WebForm1"%> <%@ Register TagPrefix="cc1" Namespace="Mensajes" Assembly="msgBox" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <asp:TextBox id="TextBox1" runat="server" Width="136px"></asp:TextBox> <asp:Button id="Button1" runat="server" Width="96px" Text="Aceptar"></asp:Button> <cc1:msgBox id="MsgBox1" runat="server"></cc1:msgBox> </form> </body> </HTML>
<%@ Register TagPrefix="cc1" Namespace="Mensajes" Assembly="msgBox" %> <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="PruebasASPCS.WebForm1" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>WebForm1</title> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <for id="Form1" method="post" runat="server"> <asp:TextBox id="TextBox1" runat="server" Width="104px"></asp:TextBox> <asp:Button id="Button1" runat="server" Width="96px" Text="Button"></asp:Button> <cc1:msgBox id="MsgBox1" runat="server"></cc1:msgBox> </form> </body> </HTML>
Luego en la acción del botón llamamos el mensaje que necesitamos.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Hand id="Form1" method="post" runat="server"> <asp:TextBox id="TextBox1" runat="server" Width="104px"></asp:TextBox> <asp:Button id="Button1" runat="server" Width="96px" Text="Button"></asp:Button> <cc1:msgBox id="MsgBox1" runat="server"></cc1:msgBox> </form> </body> </HTML>
Luego en la acción del botón llamamos el mensaje que necesitamos.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Me.TextBox1.Text <> "" Then MsgBox1.confirm("Usted digitó " & Me.TextBox1.Text, "hid_f") Else MsgBox1.alert("Por favor debe digitar en el TextBox") End If End Sub
[C#.NET]
private void Button1_Click(object sender, System.EventArgs e) { if(TextBox1.Text!=null && TextBox1.Text!="") MsgBox1.confirm("Usted digitó "+ TextBox1.Text, "hid_f"); else MsgBox1.alert("Por favor debe digitar en el TextBox"); }
Como ven la misma referencia en C# nos sirve para aplicaciones en diferentes lenguajes.