Как отобразить окна сообщений из серверного кода?

2

Я работаю над ASP.NET С# VS05. У моей формы есть кнопка. В этом событии кнопки я сохраняю значение в базе данных. Я хочу, чтобы после сохранения значения пользователь получил предупреждающее сообщение.

Как показать предупреждающее сообщение?

Теги:
messagebox

4 ответа

1
Лучший ответ

RegisterClientScriptBlock может помочь?

http://msdn.microsoft.com/en-us/library/bahh2fef.aspx

  • 1
    Это может быть использовано в дополнение к диалогу пользовательского интерфейса jQuery. см. jqueryui.com/demos/dialog
2

Добавьте WebMsgBox класс ниже в ваш проект. Тогда, где вам нужно всплывать окно сообщения из кода, просто выполните следующее:

WebMsgBox.Show("How to show alert message!");

Класс WebMsgBox:

using System;
using System.Text;
using System.Collections;
using System.Web;
using System.Web.UI;

public class WebMsgBox
{
  protected static Hashtable handlerPages = new Hashtable();

  private WebMsgBox() { }

  public static void Show(string Message)
  {
     if (!(handlerPages.Contains(HttpContext.Current.Handler)))
     {
        Page currentPage = (Page)HttpContext.Current.Handler;
        if (!((currentPage == null)))
        {
           Queue messageQueue = new Queue();
           messageQueue.Enqueue(Message);
           handlerPages.Add(HttpContext.Current.Handler, messageQueue);
           currentPage.Unload += new EventHandler(CurrentPageUnload);
        }
     }
     else
     {
        Queue queue = ((Queue)(handlerPages[HttpContext.Current.Handler]));
        queue.Enqueue(Message);
     }
  }

  private static void CurrentPageUnload(object sender, EventArgs e)
  {
     Queue queue = ((Queue)(handlerPages[HttpContext.Current.Handler]));
     if (queue != null)
     {
        StringBuilder builder = new StringBuilder();
        int iMsgCount = queue.Count;
        builder.Append("<script language='javascript'>");
        string sMsg;
        while ((iMsgCount > 0))
        {
           iMsgCount = iMsgCount - 1;
           sMsg = System.Convert.ToString(queue.Dequeue());
           sMsg = sMsg.Replace("\"", "'");
           builder.Append("alert( \"" + sMsg + "\" );");
        }
        builder.Append("</script>");
        handlerPages.Remove(HttpContext.Current.Handler);
        HttpContext.Current.Response.Write(builder.ToString());
     }
  }
}
0

Я нашел эту ссылку, может быть полезен: http://www.aspsnippets.com/Articles/Show-Alert-Message-in-ASPNet-from-Server-Side-using-C-and-VBNet.aspx

0

вы можете использовать ClientScript для выполнения кода javascript со стороны сервера. Для обеспечения оповещения вам нужно написать ClientScript.RegisterStartupScript/ClientScript.RegisterClientScriptBlock после сохранения значения.

Если ваша кнопка находится на панели обновления, вы должны использовать ScriptManager.RegisterClientScriptBlock вместо ClientScript.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню