Foros del Web » Programación para mayores de 30 ;) » .NET »

Disparar un Alert desde una clase

Estas en el tema de Disparar un Alert desde una clase en el foro de .NET en Foros del Web. .:Buenas tardes. Estoy programando en dotNet c#. Necesito disparar un alert de JavaScript, desde una clase, tengo este código que me está funcionando muy bien ...
  #1 (permalink)  
Antiguo 10/03/2008, 19:16
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Disparar un Alert desde una clase

.:Buenas tardes.

Estoy programando en dotNet c#. Necesito disparar un alert de JavaScript, desde una clase, tengo este código que me está funcionando muy bien en cualquier aspx, pero en la clase no.

System.Text.StringBuilder jScript = new System.Text.StringBuilder();
jScript.Append("<script>" + Environment.NewLine);
jScript.Append("alert(" + hdnMensajeError.Value + ")" + Environment.NewLine);
jScript.Append("</script>" + Environment.NewLine);
ClientScript.RegisterStartupScript(this.GetType(), "Bookmark", jScript.ToString());


Me manda un error en la línea ClientScript.RegisterStartupScript, según no está instanceado

Ya intente Instancear el ClientScript, ya intenté con
ScriptManager.RegisterClientScriptBlock(this, this.GetType())

y hasta intenté algo así

pagina.ClientScript.RegisterStartupScript(pagina.G etType(), "ALERT", sDatos);

pero no se puede, si alguien sabe o ha hecho algo similar le agradecería que me dijera qué me hace falta para que se dispare el alert.

Gracias .:
  #2 (permalink)  
Antiguo 10/03/2008, 19:34
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Disparar un Alert desde una clase

this.page.ClientScript.RegisterClientScriptBlock(t his.GetType(), "nombrefuncion", codigo);

a mi me funciona perfectamente.

saludos
peter
  #3 (permalink)  
Antiguo 11/03/2008, 10:20
 
Fecha de Ingreso: marzo-2008
Mensajes: 3
Antigüedad: 16 años, 1 mes
Puntos: 0
Exclamación Re: Disparar un Alert desde una clase

Hola.

Si, lo que digo es que en cualquier forma aspx, funciona bien, sin embargo si lo quiero disparar dentro de una clase (cs), no se puede.

lo coloqué y manda el siguiente error.
Error 6 'clsConn' does not contain a definition for 'page' C:\Proyectos\Mi_proyecto\Web\App_Code\clsConn.cs 979 17 C:\...\Web\
me lo manda en el this.page y claro porque no se hace referencia a ninguna página, el código está dentro de la clase.

Mira te explico mi problema, tengo una clase donde hago las conexiones y disparo los querys, sin embargo el usuario quiere que cuando haya una Excepción, se dispare un alert con el mensaje de error que manda ORACLE, y lo quieren ver en un ALERT, por eso lo quiero meter en la clase, para que no importando la forma que sea, si hay un error se dispare el Mensaje, si no tendría que colocarlo en cada forma y en el catch regresar un string y disparar el alert, pero no quieren eso =(

Gracias PeterPay
  #4 (permalink)  
Antiguo 11/03/2008, 11:06
Avatar de jlbautista  
Fecha de Ingreso: enero-2007
Ubicación: Durango, Méx.
Mensajes: 175
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: Disparar un Alert desde una clase

Te paso el código de un método q usamos dentro de la Página Base de las aplicaciones Web q desarrollamos, espero te sirva:
Código:
internal void Mensaje(string ipMensaje)
{
     if (ipMensaje == "") return;
     StringBuilder Script = new StringBuilder();

     ipMensaje = ipMensaje.Replace(Convert.ToChar(13), ' ');
     ipMensaje = ipMensaje.Replace(Convert.ToChar(10), ' ');

     Script.Append("<script language='javascript'>" + Convert.ToChar(13));
     Script.Append("		alert('" + ipMensaje + "');" + Convert.ToChar(13));
     Script.Append("</script>" + Convert.ToChar(13));
     try
     {
         ClientScript.RegisterClientScriptBlock(this.GetType(), "<MENSAJE>", Script.ToString());
     }
     catch
     {}
}
Aqui solo llamas desde tus .cs heredados de PAGINA BASE al método
Código:
Mensaje("Aqui va tu msj");
y funciona...

Have a Nice Day...

Última edición por jlbautista; 11/03/2008 a las 14:33 Razón: código anterior para 2003, modificado para 2005
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:46.