1. 程式人生 > >關於在cs檔案中輸出js的alert程式碼

關於在cs檔案中輸出js的alert程式碼

發現現在很多朋友在cs程式碼中經常使用這種方法呼叫alert給訪問者資訊提示。

      try
        {
            cmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            Response.Write(" <script language='JavaScript' type='text/javascript'>alert("ex.Message") </script>");
        }

我也喜歡用alert提示資訊,包括在進行程式測試的時候,alert一下某些可能錯誤程式碼。

但是在alert的時候最好不要用response.write輸出的形式。為啥麼來?有這麼幾個原因:1、使用不當容易失靈,這個經常發生,經常聽到朋友問,我的alert咋不彈出來。2、不美觀,大家都發現,當alert的視窗彈出時,整個背景停留在白色狀態,很不舒服。3、不符合net的物件觀,net等習慣物件說,其實所謂的面向物件程式設計很容易理解,就是把每一個具有單獨功能的程式提取出來作為一個方法,供程式設計師隨時呼叫。

所以對於這個部分我給大家一個建議,用net的自帶方法,page.RegisterStartupScript或者是page.RegisterStartupScript,namespace LG.Utility
{
    public class Common
    {
        public static void JsAlert(Page page, string msg)
        {
            page.RegisterStartupScript("", "<script defer=/"defer/">alert(/"" + msg + "/");</script>");
        }
        public static void JsAlertRedirect(Page page, string msg, string url)
        {
            page.RegisterStartupScript("", "<script defer=/"defer/">alert(/"" + msg + "/");location.href=/"" + url + "/"</script>");
        }

               我一般會這樣寫,把alert寫成一個帶引數的方法,搞一個專門的utility包,把類似的程式羅列,隨時呼叫,以後任何專案拿過來就用,非常方便,而且net帶的這兩個方法絕不會出現剛才說的第二種情況。

                  Common.JsAlertRedirect(this.Page, "新增成功", "New.aspx");

使用時就是這樣一句話而已。