asp.net使用Javascript弹出对话框

来源:互联网 发布:淘宝上的实体娃娃 编辑:程序博客网 时间:2024/05/20 16:00
在asp.net中经常会使用javascript弹出一些提示框,前段时间做了一个网站,因为要用到弹出提示框的情况比较多,就自己动手写了这样的一个类。主要包括如下静态方法:Show(),NoticeAndReturn(),NoticeAndReturn(),ConfirmAndReturn()

 public class MessageBox
    {
        private const string SCRIPT = "/n<script language=/"javascript/">/nwindow.alert('{0}');/n</script>";
//////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// 弹出提示对话框
        /// </summary>
        /// <param name="currentPage"></param>
        /// <param name="message"></param>
        public static void Show(System.Web.UI.Page currentPage, string message)
        {
            currentPage.ClientScript.RegisterStartupScript(currentPage.GetType(), Guid.NewGuid().ToString(), string.Format(SCRIPT, message));
        }

        private const string _scriptNoticeAndReturn = "alert('{0}');location.href = '{1}'";

        //private const string _scriptConfirmAndReturn = "if (confirm('{0}')) window.open('{1}', '_self', true);";
        private const string _scriptConfirmAndReturn = "if (confirm('{0}')) location.href = '{1}';";

        private const string _scriptNoticeAndReturnRefer = "alert('{0}');window.open(document.referer, '_self');";

//////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// 提示并返回到指定的页面
        /// </summary>
        /// <param name="message"></param>
        /// <param name="url"></param>
        public static void NoticeAndReturn(System.Web.UI.Page currentPage, string message, string url)
        {
            currentPage.ClientScript.RegisterStartupScript(currentPage.GetType(), "Message", string.Format(_scriptNoticeAndReturn, message, url), true);
        }
//////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// 提示并返回到上一页
        /// </summary>
        /// <param name="currentPage"></param>
        /// <param name="message"></param>
        public static void NoticeAndReturn(System.Web.UI.Page currentPage, string message)
        {
            currentPage.ClientScript.RegisterStartupScript(currentPage.GetType(), "Message1", string.Format(_scriptNoticeAndReturnRefer, message), true);
        }


//////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// 提示是否返回指定的页面
        /// </summary>
        /// <param name="currentPage"></param>
        /// <param name="message"></param>
        /// <param name="url"></param>
        public static void ConfirmAndReturn(System.Web.UI.Page currentPage, string message, string url)
        {
            currentPage.ClientScript.RegisterStartupScript(currentPage.GetType(), "Message", string.Format(_scriptConfirmAndReturn, message, url), true);
        }
    }

具体的使用如: MessageBox.ConfirmAndReturn(this, "修改已成功,单击确定返回到首页", "Default.aspx");
这样把他们包装起来后使用比较方便。但是也存在一个问题:在弹出了提示对话框后,用户返回或刷新,这时,对话框就是再次弹出来。、
这个问题困扰了我很久,抽时间一定将它解决
原创粉丝点击