ScriptManager.RegisterStartupScript与ClientScript.RegisterStartupScript区别
ScriptManager.RegisterStartupScript与ClientScript.RegisterStartupScript区别,他俩的方法基本一样,只是在特殊的场合要注意使用。
1.ScriptManager.RegisterStartupScript(updatepanel1, this.Page.GetType(), "alert", "alert()", true); 如果有UpdatePanel使用这个方法。
2.this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "alert", "<script>alert('hello word');</script>", true); 反之没有UpdatePanel就用这个。
ScriptManager是涉及到ajax,在ajax updatepanel中使用ClientScript是无效的。
另外:
启动脚本由它的键和类型唯一标识。具有相同的键和类型的脚本被视为重复脚本。只有使用给定的类型和键对的脚本才能使用该页面进行注册。如果注册一个已经注册的脚本不会创建重复的脚本。
调用 IsStartupScriptRegistered方法来确定给定的键和类型对的启动脚本是否已经注册,从而避免不必要的添加脚本。
在 RegisterStartupScript 方法的此重载中,使用 addScriptTags 参数可指示 script 参数中提供的脚本是否包装在 <script> 元素块中。将 addScriptTags 设置为 true 指示脚本标记将自动添加。
RegisterStartupScript 方法添加的脚本块在页面加载完成但在页面的 OnLoad 事件引发之前执行。
总结:
ScriptManager.RegisterStartupScript 适用于无刷新后台调用JS
ClientScript.RegisterStartupScript 普通的后台调用前段的JS更适用