注册JavaScript?

在项目中看到这样一句代码:

this.PreRender += new EventHandler(PageJs_PreRender);

 PreRender是个事件,这句话是给PreRender事件添加一个处理方法。

注册JS的一个例子:

RegisterClientScriptBlock
        /// <summary>
        /// 页面呈现之前从服务器注册Javascript到前台HTML
        
/// 使前台显示当前LetterTemplate的LetterTemplateParamerter
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>
        
protected void PageJs_PreRender(object sender, System.EventArgs e)
        {
            System.Text.StringBuilder sb 
= new System.Text.StringBuilder();
            sb.Append(
"<script language=\"javascript\">\r\n");
            
if (Session[GlobalPara.SEESION_SHOW_ALERT_MESSAGE] != null)
            {
               sb.Append(
"alert('" + StringUtil.JsScriptReplaceIllegalString((String)Session[GlobalPara.SEESION_SHOW_ALERT_MESSAGE]) + "'); \r\n");
               Session.Remove(GlobalPara.SEESION_SHOW_ALERT_MESSAGE);
            }
            sb.Append(
"</script>\r\n");
            
string js = sb.ToString();
            
if (!IsClientScriptBlockRegistered("PageJs_PreRender"))//注册JS
            {
                RegisterClientScriptBlock(
"PageJs_PreRender", js);
            }
        }

 为什么要注册JavaScript?注册JavaScript是什么意思?

网上关于RegisterClientScriptBlock作用的说法并不一致,有的说是从前台向后台注册JavaScript脚本,有的说是从后台向前台注册JavaScript脚本。

对注册JavaScript这一说法的理解很模糊。

 

补充:

        public static void ShowErrorMsg(Page page, string ErrMsg)
        {
            
string scrpt = "<script language='javascript' >"
               
+ "alert('" + ErrMsg + "');</script>";

            page.ClientScript.RegisterStartupScript(page.GetType(), 
"clientscript", scrpt);
        }

RegisterClientScriptBlock一般返回的是客户端函数的包装,而RegisterStartupScript返回得函数在document装载完成后会执行,类似于我们平时所说的body onload="f()"里面的函数;这两个方法在客户端呈现的代码位置不同,RegisterClientScriptBlock在<form runat=server>之后,而RegisterStartupScript在</form>之前。

原文地址:https://www.cnblogs.com/niuniu1985/p/1676334.html