ScriptManager.RegisterStartupScript与ClientScript.RegisterStartupScript区别

ScriptManager.RegisterStartupScript与ClientScript.RegisterStartupScript区别

ScriptManager和ClientScript的区别,他俩的方法是一样的,只是在特殊的场合要注意使用。

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/YoungPop-Chen/p/3262483.html