showmessage net hacer form como asp alerta c# asp.net web-applications code-behind messagebox
del código adjunto

c# - hacer - Cuadro de mensajes de la aplicación web ASP.NET



msgbox en asp net vb (13)

En una aplicación de formularios de Windows de asp.net, en el código C # detrás de usted puede usar:

MessageBox.Show("Here is my message");

¿Hay algún equivalente en una aplicación web asp.net? ¿Puedo llamar algo desde el código C # detrás que mostrará un cuadro de mensaje al usuario?

Ejemplo de uso de esto: tengo un botón que carga un archivo en el código que está detrás. Cuando el archivo está cargado o si hay un error, me gustaría abrir un mensaje al usuario que indica el resultado.

¿Alguna idea sobre esto?


¿Por qué no debería usar jquery popup para este propósito? bpopup uso bpopup para este propósito. bpopup más sobre esto.
http://dinbror.dk/bpopup/


''MessageBox ASP.net

''Agregar un administrador de scripts a la página ASP.Net

<asp:scriptmanager id="ScriptManager1" runat="server" />

tratar:

{ string sMsg = "My Message"; ScriptManager.RegisterStartupScript(Page, Page.GetType, Guid.NewGuid().ToString(), "alert(''" + sMsg + "'')", true); }


Como otros ya han señalado, un cuadro de mensaje será Javascript del lado del cliente. Entonces, el problema es cómo forzar un cuadro de mensaje JS del lado del cliente desde el lado del servidor. Una solución simple es incluir esto en el HTML:

<script> var data = ''<%= JsData %>''; alert(data); </script>

y para llenar estos data desde el lado del código del lado del servidor:

public partial class PageName : Page { protected string JsData = "your message";

Tenga en cuenta que el valor de la cadena debe ser una cadena de Javascript, es decir, debe ser de una sola línea, pero puede contener nuevas líneas de escape como /n .

Ahora puede usar todas sus habilidades y trucos de Javascript o JQuery para hacer lo que quiera con el texto de ese mensaje en el lado del cliente, como mostrar una alert() simple alert() , como se muestra en el ejemplo de código anterior, o un sofisticado cuadro de mensaje o pancarta de mensaje.

(Tenga en cuenta que a veces las ventanas emergentes están mal vistas y bloqueadas)

Tenga en cuenta también que, debido al protocolo HTTP, el mensaje solo se puede mostrar en respuesta a una solicitud HTTP que el usuario envía al servidor. A diferencia de las aplicaciones WinForm, el servidor web no puede enviar un mensaje al cliente cuando lo considere oportuno.

Si desea mostrar el mensaje solo una vez, y no después de que el usuario actualice la página con F5, puede configurar y leer una cookie con código javascript. En cualquier caso, lo bueno de este método es que es una forma fácil de obtener datos del servidor al javascript en el cliente, y que puede usar todas las funciones de javascript para lograr lo que quiera.


Haga clic con el botón derecho en el explorador de soluciones y elija el cuadro de diálogo Agregar reference.one . Aparecerá uno. En ese seleccione (.net)-> System.windows.form . Imports System.Windows.Forms (vb) y utilizando System.windows.forms(C#) copie esto en su codificación y luego escriba messagebox.show("") .


Hay algunas soluciones; Si te sientes cómodo con CSS, aquí hay una solución muy flexible:

Cree un Panel estilo adecuado que se asemeje a un "Cuadro de mensaje", coloque una Label en él y establezca su propiedad Visible en false . Luego, cuando el usuario necesite ver un mensaje después de una devolución (por ejemplo, al presionar un botón), desde el código siguiente, establezca la propiedad Text la Label en el mensaje de error deseado y establezca la propiedad Visible del Panel en true .


Hay varias opciones para crear un cuadro de mensaje del lado del cliente en ASP.NET; vea here , here y here por ejemplo ...


Necesita hacer referencia al espacio de nombres

using System.Windows.Form;

y luego agregar en el codigo

protected void Button1_Click(object sender, EventArgs e) { MessageBox.Show(" Hi...."); }


O crea un método como este en tu solución:

public static class MessageBox { public static void Show(this Page Page, String Message) { Page.ClientScript.RegisterStartupScript( Page.GetType(), "MessageBox", "<script language=''javascript''>alert(''" + Message + "'');</script>" ); } }

Entonces puedes usarlo como:

MessageBox.Show("Here is my message");


Quieres usar una alerta. Lamentablemente no es tan bonito como con las formas de windows.

ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert(''" + myStringVariable + "'');", true);

Similar a esta pregunta aquí: http://forums.asp.net/t/1461308.aspx/1


Sólo para los registros.

Aquí hay un enlace de Microsoft que creo que es la mejor manera de presentar un MessageBox en ASP.Net

También presenta opciones como y NO .

Instrucciones sobre cómo obtener la clase desde el enlace que trabaja en su proyecto:

  1. Si no tiene una carpeta App_Code en su proyecto, créela .
  2. Haga clic derecho en la carpeta App_Code y cree una clase. Nómbrelo MessageBox.cs
  3. Copie el texto del archivo MessageBox.cs ( del código adjunto ) y péguelo en su archivo MessageBox.cs .
  4. Haga lo mismo que los pasos 2 y 3 para el archivo MessageBoxCore.cs .
  5. Importante: haga clic con el botón derecho en cada archivo, MessageBox.cs y MessageBoxCore.cs, y asegúrese de que la ''Acción de compilación'' esté configurada para compilar
  6. Agregue este código a su página aspx donde desea mostrar el cuadro de mensaje:

    <asp:Literal ID="PopupBox" runat="server"></asp:Literal>

  7. Agregue este código en su página cs donde desea tomar una decisión:

    string title = "My box title goes here"; string text = "Do you want to Update this record?"; MessageBox messageBox = new MessageBox(text, title, MessageBox.MessageBoxIcons.Question, MessageBox.MessageBoxButtons.YesOrNo, MessageBox.MessageBoxStyle.StyleA); messageBox.SuccessEvent.Add("YesModClick"); PopupBox.Text = messageBox.Show(this);

  8. Agregue este método a su página cs . Esto es lo que se ejecutará cuando el usuario haga clic en Sí. No necesita hacer otro para el método NoClick .

    [WebMethod] public static string YesModClick(object sender, EventArgs e) { string strToRtn = ""; // The code that you want to execute when the user clicked yes goes here return strToRtn; }

  9. Agregue un archivo WebUserControl1.ascx a su ruta raíz y agregue este código al archivo:

    <link href="~/Styles/MessageBox.css" rel="stylesheet" type="text/css" /> <div id="result"></div> <asp:ScriptManager runat="server" ID="scriptManager" EnablePageMethods="True"> </asp:ScriptManager> //<-- Make sure you only have one ScriptManager on your aspx page. Remove the one on your aspx page if you already have one.

  10. Agregue esta línea en la parte superior de su página aspx :

    <%@ Register src="~/MessageBoxUserControl.ascx" tagname="MessageBoxUserControl" tagprefix="uc1" %>

  11. Agregue esta línea dentro de su página aspx (dentro de su asp: etiqueta de contenido si tiene una)

    <uc1:MessageBoxUserControl ID="MessageBoxUserControl1" runat="server" />

  12. Guarde los archivos de imagen 1.jpg, 2.jpg, 3.jpg, 4.jpg del proyecto de Microsoft anterior en su ~/Images/ path.

  13. Hecho

Espero eso ayude.

Pablo


Solo agrega el espacio de nombres:

System.Windows.forms

a la referencia de su aplicación web o lo que sea, y tiene acceso a su:

MessageBox.Show("Here is my message");

Lo intenté y funcionó.

Buena suerte.


realmente no. El código del lado del servidor está ocurriendo en el servidor --- puede usar javascript para mostrar algo al usuario en el lado del cliente, pero obviamente solo se ejecutará en el lado del cliente. Esta es la naturaleza de la tecnología web de un servidor cliente. Básicamente, estás desconectado del servidor cuando recibes tu respuesta.


si vas a incluir

System.Windows.forms

como espacio de nombres entonces entrará en conflicto. Utilizar

btn_click() { System.Windows.Forms.MessageBox.Show("Hello"); }