ScriptManager和ClientScript的区别

ClientScript获取用于管理脚本、注册脚本和向页面添加脚本的ClientScriptManager对象。
ScriptManager.RegisterStartupScript方法和ClientScript.RegisterStartupScript方法的区别。
ScriptManager和ClientScriptManager的命名空间均是System.Web.UI。
ClientScript是ClientScriptManager的对象,ClientScriptManager是类。
ScriptManager是用于管理AJAX脚本库和脚本文件
ClientScriptManager用于管理普通的Script。
ScriptManager适用在特殊的场合,那么我们在控件中如何来进行区分应该使用哪一个呢?其实可以通过寻找控件的parent,判断是否有updatepanel,如果有就用ScriptManager;没有的话当然用ClientScript,避免每次postback操作时控件都要进行资源文件的注册。也就是说 是否兼容ajax的问题,ScriptManager兼容于ajax,在ajax updatepanel中使用ClientScript是无效的。
使用类型、键、脚本文本和指示是否添加脚本标记的布尔值向 Page 对象注册启动脚本。也就是说利用.net函数向页面中添加scrip函数
参数
type 
要注册的启动脚本的类型。
key 
要注册的启动脚本的键。
script 
要注册的启动脚本文本。
addScriptTags 
指示是否添加脚本标记的布尔值.
tips:
启动脚本由它的键和类型唯一标识。具有相同的键和类型的脚本被视为重复脚本。只有使用给定的类型和键对的脚本才能使用该页面进行注册。试图注册一个已经注册的脚本不会创建重复的脚本。
调用 IsStartupScriptRegistered 方法以确定具有给定的键和类型对的启动脚本是否已经注册,从而避免不必要的添加脚本尝试。
在 RegisterStartupScript 方法的此重载中,使用 addScriptTags 参数可指示 script 参数中提供的脚本是否包装在 <script> 元素块中。将 addScriptTags 设置为 true 指示脚本标记将自动添加。
RegisterStartupScript 方法添加的脚本块在页面加载完成但页面的 OnLoad 事件引发之前执行。
ScriptManager.RegisterStartupScript 适用于无刷新后台调用JS。
ClientScript.RegisterStartupScript  普通的后台调用前端的JS更适用。
原文地址:https://www.cnblogs.com/weihengblogs/p/3907889.html