2009-10-17 80 views

回答

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

可以使用ClientScript從服務器端執行JavaScript代碼。 爲了提供警報,您必須在保存值後編寫ClientScript.RegisterStartupScript/ClientScript.RegisterClientScriptBlock

如果您的按鈕是在更新面板,那麼你必須使用ScriptManager.RegisterClientScriptBlock,而不是ClientScript。

相關問題