Foros del Web » Programando para Internet » ASPX (.net) »

MsgBox

Estas en el tema de MsgBox en el foro de ASPX (.net) en Foros del Web. Otro problemilla que tengo es que he cogido y he implementado el MsgBox que microsoft tiene en su msdn, la cosa es que lo adjunto ...
  #1 (permalink)  
Antiguo 21/07/2006, 06:18
 
Fecha de Ingreso: febrero-2005
Mensajes: 108
Antigüedad: 19 años, 2 meses
Puntos: 0
MsgBox

Otro problemilla que tengo es que he cogido y he implementado el MsgBox que microsoft tiene en su msdn, la cosa es que lo adjunto a mi proyecto y me encuentro con el siguiente problema. Si el proyecto es de VB.net funciona perfectamente pero si es de C# me da un error de compilación...me dice ¿falta una referencia de ensamblado?...a ver si alguien se ha encontrado con algun problema parecido, o sabe de algun control MsgBox que me permita utilizarlo bajo C#...un saludo.
  #2 (permalink)  
Antiguo 21/07/2006, 14:38
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 18 años, 1 mes
Puntos: 1
MessageBox.Sow("Hola Mundo!");
(win)
__________________
saludos
seba
http://sgomez.blogspot.com
  #3 (permalink)  
Antiguo 21/07/2006, 16:13
 
Fecha de Ingreso: julio-2006
Mensajes: 4
Antigüedad: 17 años, 9 meses
Puntos: 0
el messagebox no funciona en web, yo implemente una clase sencilla que utiliza la funcion alert de javascript.
la primera vez que se invoca el metodo show en una pagina, se crea una cola en la que se guardan los mensajes de una misma pagina, dicha cola es almacenada en una hashtable. Los mensajes son desplegados despues que finaliza el render de la pagina.
El metodo show es estatico, por esta razon se utiliza una hashtable para almacenar las colas de mensajes, porque varias paginas pueden estar utilizando el mismo metodo.
Te paso el codigo de la clase...
public class MessageBox
{
private static Hashtable m_PaginasenEjecucion = new Hashtable();

private MessageBox() { }

public static void Show(string sMensaje)
{
// Si es la primera vez que la pagina ejecuta este metodo
if (!m_PaginasenEjecucion.Contains(HttpContext.Curren t.Handler))
{
// Intenta castear HttpHandlet como una pagina
Page PaginaActual = HttpContext.Current.Handler as Page;

if (PaginaActual != null)
{
// Crea una cola para almacenar los mensajes
Queue ColaMensajes = new Queue();

// Agrega el mensaje a la cola
ColaMensajes.Enqueue(sMensaje);

// Agrega la cola de mensaje al hash table. La referencia a la pagina
// (IHttpHandler) como clave
m_PaginasenEjecucion.Add(HttpContext.Current.Handl er, ColaMensajes);

// Esto se hace para agregar JavaScript para los alerts
PaginaActual.Unload += new EventHandler(ExecutingPage_Unload);
}
}
else
{
// Si el metodo ya fue ejecutado por la pagina en ejecucion
// la cola de mensajes ya fue creada y ya se agrego una referencia al hashtable
Queue cola = (Queue)m_PaginasenEjecucion[HttpContext.Current.Handler];

// Agrega el nuevo mensaje a la cola
cola.Enqueue(sMensaje);
}
}


// Termino de mostrarse la pagina, se ejecuta el JavaScript para producir el alert
private static void ExecutingPage_Unload(object sender, EventArgs e)
{
// Obtener la cola de mensaje del hashtable
Queue cola = (Queue)m_PaginasenEjecucion[HttpContext.Current.Handler];

if (cola != null)
{
StringBuilder sb = new StringBuilder();

// Cantidad de mensajes registrados
int iCantMensajes = cola.Count;

// Se utiliza el StringBuilder para construir el JavaScript del cliente
sb.Append("<script language='javascript'>");

// Recorre los mensajes registrados
string sMsg;
while (iCantMensajes-- > 0)
{
sMsg = (string)cola.Dequeue();
sMsg = sMsg.Replace("\n", "\\n");
sMsg = sMsg.Replace("\"", "'");
sb.Append(@"alert( """ + sMsg + @""" );");
}

// Cierra el JavaScript
sb.Append(@"</script>");

// Elimina la referencia de la hashtable
m_PaginasenEjecucion.Remove(HttpContext.Current.Ha ndler);

// Escribe el JavaScript al final del stream respuesta
HttpContext.Current.Response.Write(sb.ToString());
}
}
}

Espero que te sea util
Saludos
Natalia
  #4 (permalink)  
Antiguo 21/07/2006, 20:43
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Yo encontre esta informacion de microsoft, esta muy buena, un poco compleja de entender pero funciona excelente, bueno eso digo yo que no se casi nada de asp

http://www.microsoft.com/spanish/msd...ces/art120.asp
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 12:37.