Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何显示来自服务器端代码的消息框?_C#_Asp.net_Messagebox - Fatal编程技术网

C# 如何显示来自服务器端代码的消息框?

C# 如何显示来自服务器端代码的消息框?,c#,asp.net,messagebox,C#,Asp.net,Messagebox,我在ASP.NET C#VS05上工作。我的表格有一个按钮。在这个按钮事件中,我将值保存在数据库中。我希望在保存该值后,用户能够获得一条警报消息 如何显示警报消息?RegisterClientScriptBlock会有帮助吗 将下面的类添加到项目中。然后,在需要从代码弹出消息框的任何地方,只需执行以下操作: WebMsgBox.Show("How to show alert message!"); WebMsgBox类: using System; using System.Text; usi

我在ASP.NET C#VS05上工作。我的表格有一个按钮。在这个按钮事件中,我将值保存在数据库中。我希望在保存该值后,用户能够获得一条警报消息


如何显示警报消息?

RegisterClientScriptBlock会有帮助吗

将下面的类添加到项目中。然后,在需要从代码弹出消息框的任何地方,只需执行以下操作:

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());
     }
  }
}
使用系统;
使用系统文本;
使用系统集合;
使用System.Web;
使用System.Web.UI;
公共类WebMsgBox
{
受保护的静态哈希表handlerPages=新哈希表();
私有WebMsgBox(){}
公共静态无效显示(字符串消息)
{
if(!(handlerPages.Contains(HttpContext.Current.Handler)))
{
Page currentPage=(Page)HttpContext.Current.Handler;
如果(!((currentPage==null)))
{
Queue messageQueue=新队列();
messageQueue.Enqueue(消息);
添加(HttpContext.Current.Handler,messageQueue);
currentPage.Unload+=新事件处理程序(CurrentPageUnload);
}
}
其他的
{
队列=((队列)(handlerPages[HttpContext.Current.Handler]);
排队(消息);
}
}
私有静态void CurrentPageUnload(对象发送方,事件参数e)
{
队列=((队列)(handlerPages[HttpContext.Current.Handler]);
if(队列!=null)
{
StringBuilder=新的StringBuilder();
int iMsgCount=queue.Count;
生成器。追加(“”);
字符串sMsg;
而((iMsgCount>0))
{
iMsgCount=iMsgCount-1;
sMsg=System.Convert.ToString(queue.Dequeue());
sMsg=sMsg。替换(“\”,“”);
追加(“警报(\”“+sMsg+\”);”;
}
生成器。追加(“”);
移除(HttpContext.Current.Handler);
HttpContext.Current.Response.Write(builder.ToString());
}
}
}

您可以使用ClientScript从服务器端执行javascript代码。 要提供警报,必须在保存值后写入ClientScript.RegisterStartupScript/ClientScript.RegisterClientScriptBlock


如果按钮位于更新面板中,则必须使用ScriptManager.RegisterClientScriptBlock而不是ClientScript。

除了jQuery UI对话框之外,还可以使用此按钮。请参阅