(转)ScriptManager.RegisterStartupScript方法和Page.ClientScript.RegisterStartupScript() 方法...
ScriptManager.RegisterStartupScript方法
如果页面中不用Ajax,cs中运行某段js代码方式可以是: Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>window.open('default2.aspx')</script>");
如果页面中使用了Ajax ,则上述代码即使执行也无效果。
对这种情况我们通常采用: ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), "alertScript", "window.open('default2.aspx');", true);
其中第一个参数为要注册脚本的控件ID,试了一下,只要是本页面的就行。
第二个参数为注册脚本控件类型,是控件还是this的GetType()都可以,typeOf(string)也没问题.
第三个脚本函数的名字,随便起。
第四个是脚本内容。
第五个是标明是否再添加脚本标签,如果第四个参数里包含了<script></script>标签,此处则为false,否则为true。
注意:aspx代码是这样的
我在Button1_Click的事件里注册脚本,一定要加红色的部分,否则总是提示不能parse什么东西!
另外,js无法干涉cs代码。所以一旦脚本注册成功,js和cs代码会互不相干的各自运行。
以上的内容来自别人的文章,现在说一下自己的使用体会:
在按钮Button1的onClick事件中注册脚本可以这样写:ScriptManager.RegisterStartupScript(this.UpdatePanel1, Page.GetType(), System.DateTime.Now.Ticks.ToString(), "window.open('default2.aspx');", true);
页面中的红色部分也可以去掉了。
现在对第三个参数“脚本函数的名称”要特别说明一下,
如果在onClick事件中,使用该方法注册了两个脚本。如果注册的两个脚本函数的名称相同,则第二个脚本函数就不会执行。
因为脚本管理器使用此字符串来分析是否是一个已经加载过的脚本,如果加载过,将不会再次渲染。所以第二个就不会加载执行了。
Page.ClientScript.RegisterStartupScript() 方法
使用类型、键、脚本文本和指示是否添加脚本标记的布尔值向 Page 对象注册启动脚本。
参数
- type
-
要注册的启动脚本的类型。
- key
-
要注册的启动脚本的键。
- script
-
要注册的启动脚本文本。
- addScriptTags
-
指示是否添加脚本标记的布尔值.
-
备注:
-
启动脚本由它的键和类型唯一标识。具有相同的键和类型的脚本被视为重复脚本。只有使用给定的类型和键对的脚本才能使用该页面进行注册。试图注册一个已经注册的脚本不会创建重复的脚本。
调用 IsStartupScriptRegistered 方法以确定具有给定的键和类型对的启动脚本是否已经注册,从而避免不必要的添加脚本尝试。
在 RegisterStartupScript 方法的此重载中,使用 addScriptTags 参数可指示 script 参数中提供的脚本是否包装在 <script> 元素块中。将 addScriptTags 设置为 true 指示脚本标记将自动添加。
RegisterStartupScript 方法添加的脚本块在页面加载完成但页面的 OnLoad 事件引发之前执行。
-
示例
-
<%@ Page Language="C#"%> <script runat="server"> public void Page_Load(Object sender, EventArgs e) { // Define the name and type of the client scripts on the page. String csname1 = "PopupScript"; String csname2 = "ButtonClickScript"; Type cstype = this.GetType(); // Get a ClientScriptManager reference from the Page class. ClientScriptManager cs = Page.ClientScript; // Check to see if the startup script is already registered. if (!cs.IsStartupScriptRegistered(cstype, csname1)) { String cstext1 = "alert('Hello World');"; cs.RegisterStartupScript(cstype, csname1, cstext1, true); } // Check to see if the client script is already registered. if (!cs.IsClientScriptBlockRegistered(cstype, csname2)) { StringBuilder cstext2 = new StringBuilder(); cstext2.Append("<script type=text/javascript> function DoClick() {"); cstext2.Append("Form1.Message.value='Text from client script.'} </"); cstext2.Append("script>"); cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false); } } </script> <html> <head> <title>ClientScriptManager Example</title> </head> <body> <form id="Form1" runat="server"> <input type="text" id="Message"> <input type="button" value="ClickMe" οnclick="DoClick()"> </form> </body> </html>
(转)ScriptManager.RegisterStartupScript方法和Page.ClientScript.RegisterStartupScript() 方法...相关推荐
- ScriptManager.RegisterStartupScript方法和Page.ClientScript.RegisterStartupScript() 区别
ScriptManager.RegisterStartupScript方法 如果页面中不用Ajax,cs中运行某段js代码方式可以是: Page.ClientScript.RegisterStartu ...
- Page.ClientScript.RegisterStartupScript函数的使用
Page.ClientScript.RegisterStartupScript(type,key,script,addScriptTags);type要注册的启动脚本的类型.key要注册的启动脚本的键 ...
- Page.ClientScript.RegisterStartupScript() 方法与Page.ClientScript.RegisterClientScriptBlock() 方法...
最初可用的选项之一就是使用一个可实现此功能的 .NET 类来注册脚本块. 第一个是 RegisterStartupScript 方法.当您有一个想要在页面加载时 启动的 JavaScript 函数时, ...
- page.ClientScript.RegisterStartupScript
page.ClientScript.RegisterStartupScript()可以添加客户端脚本,有4个参数 type:要注册的启动脚本的类型. key:要注册的启动脚本的键. script:要注 ...
- Page.ClientScript.RegisterStartupScript() 方法与Page.ClientScript.RegisterClientScriptBlock() 方法
Page.ClientScript.RegisterStartupScript() 方法与Page.ClientScript.RegisterClientScriptBlock() 方法 Posted ...
- 转:Page.ClientScript.RegisterStartupScript(me.GetType(),script1,scriptalert('111');/script)...
后台用Response.Write("<script>alert('被其他表所引用,不能删除')</script>");这样的方法,弹出提示框后,发现页面样 ...
- (转)Page.ClientScript.RegisterStartupScript 与Page.ClientScript.RegisterClientScriptBlock 之间的区别...
主要区别在于,RegisterStartupScript 方法是将 JavaScript 嵌入到 ASP.NET 页面的底部,恰好位于关闭元素 </form> 的前面.RegisterCl ...
- Node.js的环境搭建方法和 npm 的使用方法
Node.js的环境搭建方法和 npm 的使用方法 Node.js 环境的搭建 Node.js 介绍 Node.js 下载 配置Node.js node.js 测试 npm(包管理器)使用方法 npm ...
- [Java 基础] 深入理解List的toArray()方法和toArray(T[] a)方法
深入理解List的toArray()方法和toArray(T[] a)方法 这两个方法都是将列表List中的元素转导出为数组,不同的是,toArray()方法导出的是Object类型数组,而toArr ...
最新文章
- 2.10 是否要使用端到端的深度学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
- Linux DNS服务配置与管理详解
- ASP.NET没有魔法——ASP.NET MVC 与数据库之MySQLEF
- ITK:计算梯度各向异性扩散
- windows7 docker mysql_DOCKER windows 7 详细安装教程
- 【Elasticsearch】Elasticsearch:Elasticsearch中的refresh和flush操作指南
- 使用xUnit测试验证属性
- Matlab 小波变换dwt和wavedec
- Ubuntu下安装Flask虚拟环境及使用
- MethodFilterInterceptor(方法拦截器)配置excludeMethors
- 谷歌云盘Colab使用心得
- 供给、需求、有效供给、有效需求
- 火狐浏览器怎么打不开网页
- 数据库视图效率低下一例
- 阿里云-内容安全-接口demo
- OOP和POP的区别
- 左式堆(左高树)实现
- CSS一级导航-天蓝色(带阴影)
- 阿里开源的10个神级项目
- 如何恢复电脑的administrator账户