我在 ASP.NET C# VS05 上工作。我的表单有一个按钮。在此按钮事件中,我将值保存在数据库中。我希望在保存值后用户收到警报消息。
如何显示警报消息?
我在 ASP.NET C# VS05 上工作。我的表单有一个按钮。在此按钮事件中,我将值保存在数据库中。我希望在保存值后用户收到警报消息。
如何显示警报消息?
将下面的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());
}
}
}
RegisterClientScriptBlock 可以提供帮助吗?
您可以使用 ClientScript 从服务器端执行 javascript 代码。为了提供警报,您必须在保存值之后编写ClientScript.RegisterStartupScript/ClientScript.RegisterClientScriptBlock 。
如果您的按钮在更新面板中,那么您必须使用ScriptManager.RegisterClientScriptBlock而不是 ClientScript。