ASP.NET - MessageBox en C# en un servidor

 
Vista:

MessageBox en C# en un servidor

Publicado por Juan Ramón López (17 intervenciones) el 19/12/2011 12:40:24
Hola a todos, tengo un problema con un messagebox, y es que al subirlo al servidor me aparece este error:

No se puede mostrar un cuadro de diálogo o formulario modal cuando la aplicación no está en modo UserInteractive. Especifique el estilo ServiceNotification o DefaultDesktopOnly para mostrar una notificación de una aplicación de servicio.

Por lo que he estado leyendo es un problema de que el messagebox no se puede ejecutar en un servidor por problemas del cliente o algo así. Todos los foros que he leido son de hace ya unos años así que si alguien tiene alguna sugerencia estaría agradecido.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

MessageBox en C# en un servidor

Publicado por Juan Ramón López (17 intervenciones) el 19/12/2011 12:46:13
He encontrado esta forma de hacerlo pero no me soluciona del todo el problema:

string error = "Error";

this.Page.Response.Write("<script language='JavaScript'>window.alert('" + error + "');</script>");

Con esto puedo insertar un mensaje de alerta pero lo que yo quiero es un mensaje con dos botones un "OK" y un "Cancelar" y dependiendo de lo que eliga el usuario haga una cosa u otra.

Alguna sugerencia???
Gracias de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

MessageBox en C# en un servidor

Publicado por roger (311 intervenciones) el 19/12/2011 13:57:19
en vez de alert("Mensaje"), utiliza confirm("Mensaje"), ejemplo:

var respuesta = confirm("Desea eliminar el registro?");
if(respuesta == true)
{
//Codigo
}

Y es cierto, no se puede usar messagebox que es de aplicaciones WindowsForms donde los recursos para mostrar la ventana estan en la maquina del cliente. Pues en ASP.NET y en general en desarrollos Web, los recursos se consumen en el servidor, y el cliente es un "simple" navegador que no necesita tener instaladas las librerias del framework por ejemplo, sino una pagina que hicieras en ASP.net no podria ser usada por otros sistemas operativos que no soporten Framework .NET. De alli la ventaja de las aplicaciones Web, la posibilidad de crear aplicaciones distribuidas.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MessageBox en C# en un servidor

Publicado por Juan Ramón López (17 intervenciones) el 20/12/2011 09:39:05
Hola roger, antes de nada muchas gracias por tu interés.
La solución que me has propuesto ya la había pensado pero vuelvo a tener un problema. El código es el siguiente:

string error = "Error al borrar";
this.Page.Response.Write("<script language='JavaScript'>var resultado=window.confirm('" + error + "');");
this.Page.Response.Write("if(resultado==true){");

//Código que borra el registro

this.Page.Response.Write("}else{");
this.Page.Response.Write("window.alert('Ha introducido cancelar');");

this.Page.Response.Write("}</script>");


El problema que tengo es que el script de javascript lo estoy insertando en el código, como puedes comprobar, con el this.page.response.write, y el código que borra el registro está en c#. Aunque clickee en aceptar en el confirm, siempre me entra en este código. En definitiva el if del javascript no me filtra entrar en un sitio o en otro.

Alguna solución más?, de nuevo muchas gracias por tu atención.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MessageBox en C# en un servidor

Publicado por Juan Ramón López (17 intervenciones) el 20/12/2011 11:20:51
Ya he encontrado la solución, la podéis ver en mi blog: http://laoficinadelcodigo.blogspot.com

Gracias roger.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

MessageBox en C# en un servidor

Publicado por roger (311 intervenciones) el 20/12/2011 13:30:38
Desde luego, no es posible mezclar codigo de cliente (javascript) y de servidor al mismo tiempo.
1 - Se desaconseja el uso de Response.Write para escribir scripts de lado del cliente, deberias usar
Page.RegisterStartupScript http://msdn.microsoft.com/es-es/library/system.web.ui.page.registerstartupscript%28v=vs.80%29.aspx .
2- No se exactamente en que punto estas llamando el script, si es como respuesta a algun evento de un boton, dependiendo de eso se podrian plantear soluciones distintas, por ejemplo, si tienes un boton "borrar" que quieres que tenga la confirmacion de eliminacion, en la propiedad onClientClick le asignas "return MostrarConfirmacion();" y creas un metodo javascript en la pagina con el codigo que estas haciendo con el response.write, con lo que te ahorras insertar el script de lado del servidor.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

MessageBox en C# en un servidor

Publicado por edwin (1 intervención) el 17/04/2014 17:24:46
disculpa de donde sale el confirm
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar