日期:2014-05-17  浏览次数:20367 次

ClientScript.RegisterClientScriptBlock重复执行无效问题
我尝试封装一个后台输出的javascript脚本。但是目前我的代码,只有第一次执行有效,希望大神们帮我看看哪里出问题了。
代码如下

/// <summary>
    /// 页面基类
    /// </summary>
    public class BasePage : System.Web.UI.Page
    {
        #region JavaScript内容输出
        private static Page _currentPage = HttpContext.Current.Handler as Page;

        /// <summary>
        /// 输出内容
        /// </summary>
        /// <param name="page">当前页面</param>
        /// <param name="scriptString">内容</param>
        public static void MessageShow(string scriptString)
        {
            //为空不输出
            if (!PageNullDetail())
                return;
            string message = string.Format("alert('{0}');", scriptString);
            _currentPage.ClientScript.RegisterClientScriptBlock(_currentPage.GetType(), Guid.NewGuid().ToString(), message, true);
        }

        /// <summary>
        /// 输出内容并刷新当前页面
        /// </summary>
        /// <param name="page">当前页面</param>
        /// <param name="scriptString">内容</param>
        public static void MessageShowRefresh(string scriptString)
        {
            //为空不输出
            if (!PageNullDetail())
                return;
            string message = string.Format("alert('{0}');{1}", scriptString, "window.location.href = window.location.href;");
            _currentPage.ClientScript.RegisterClientScriptBlock(_currentPage.GetType(), "Message" + Guid.NewGuid(), message, true);
        }

        /// <summary>
        /// 输出内容并关闭当前页面
        /// </summary>
        /// <param name="page">当前页面</param>
        /// <param&n