ClientScriptManager与ScriptManager向客户端注册脚本的区别
来源:互联网 发布:傅抱石弟子知君 编辑:程序博客网 时间:2024/05/02 01:34
ClientScriptManager在非异步(就是说非AJAX)环境下使用的。如果要在异步环境下注册脚本应该使用ScriptManager的静态方法来注册(ScriptManager兼容异步于非异步环境下注册脚本)。ClientScriptManager中注册脚本的方法在ScriptManager中都有一一对应的方法,但是有一些区别,ScriptManager中的方法多了一个参数(多了第一个参数),而且使用ScriptManager来注册脚本不是绝对能注册成功的。 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ClientScriptManager.aspx.cs" Inherits="Demo4_ClientScriptManager" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>ClientScriptManager</title> </head> <body> <form id="form1" runat="server"> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> </form> </body> </html> using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Demo4_ClientScriptManager : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { ClientScriptManager cs = this.ClientScript; cs.RegisterArrayDeclaration("Hello", "1, 2, 3");//#1 cs.RegisterClientScriptBlock(this.GetType(), "HelloWorld", "function helloWorld(){alert(1);}", true);//#2 cs.RegisterClientScriptInclude("HelloWorld", "HelloWorld.js");//#3 cs.RegisterExpandoAttribute(this.Button1.ClientID, "Hello", "World");//#4 cs.RegisterHiddenField("hello", "world");//#5 cs.RegisterOnSubmitStatement(this.GetType(), "HelloWorld", "return window.confirm('Do you really want to submit the form?')");//#6 cs.RegisterStartupScript(this.GetType(), "HelloWorld", "<script>alert('The page has loaded!')</script>");//#7 } } <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head><title>ClientScriptManager</title></head> <body> <form "id="form1" name="form1" method="post" action="ClientScriptManager.aspx" onsubmit="javascript:return WebForm_OnSubmit();> <div> <!-- #5 --> <input type="hidden" name="hello" id="hello" value="world" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTQ2OTkzNDMyMWRkdcWxeVaF9qGYsIaDUa9Rcaihgnk=" /> </div> <!-- #2 --> <script type="text/javascript"> <!-- function helloWorld(){alert(1);}// --> </script> <!-- #3 --> <script src="HelloWorld.js" type="text/javascript"></script> <!-- #6 --> <script type="text/javascript"> <!-- function WebForm_OnSubmit() { return window.confirm('Do you really want to submit the form?'); return true; } // --> </script> <input type="submit" name="Button1" value="Button" id="Button1" /> <!-- #1 --> <script type="text/javascript"> <!-- var Hello = new Array(1, 2, 3); // --> </script> <!-- #4 --> <script type="text/javascript"> <!-- var Button1 = document.all ? document.all["Button1"] : document.getElementById("Button1"); Button1.Hello = "World"; // --> </script> <div> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgKet4KWBgKM54rGBikWLuZSHp4emnxNA3F0qTbFNfuo" /> </div> <!-- #7 --> <script>alert('The page has loaded!')</script> </form> </body> </html> 使用ScriptManager来向客户端注册脚本时,不一定每次都会成功生效,只有UpdatePanel更新了,才会注册成功。因为注册脚本的行为是在UpdatePanel更新后执行的。 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ScriptManagerReg.aspx.cs" Inherits="Demo5_ScriptManagerReg" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>ScriptManagerReg</title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <%= DateTime.Now %> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click1" /> </ContentTemplate> </asp:UpdatePanel> <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> <ContentTemplate> <%= DateTime.Now %> </ContentTemplate> </asp:UpdatePanel> </form> </body> </html> using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Demo5_ScriptManagerReg : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click1(object sender, EventArgs e) { //#1 ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "UpdatePanel1", "alert(1)", true); //#2 ScriptManager.RegisterStartupScript(this.UpdatePanel2, this.GetType(), "UpdatePanel2", "alert(2)", true); } } 运行程序后,第一个时间会更新,更新后会alert(1); 因为UpdatePanel2的UpdateMode="Conditional",不是每次都更新,所以不会有alert(2); 只要UpdatePanel2的UpdateMode="Always",则UpdatePanel2每次都更新,因为能更新了,所以alert(2);就会注册成功。 原文连接:http://www.cnblogs.com/jienet/archive/2007/12/08/987861.html使用ClientScriptManager向客户端注册脚本
.aspx文件代码
.aspx.cs文件代码
生成页面的HTML代码
使用ScriptManager向客户端注册脚本
.aspx文件代码
.aspx.cs文件代码
说明
- ClientScriptManager与ScriptManager向客户端注册脚本的区别
- ClientScriptManager与ScriptManager向客户端注册脚本的区别
- 使用ClientScriptManager向客户端注册脚本
- 使用ClientScriptManager向客户端注册脚本
- 使用ClientScriptManager向客户端注册脚本
- 使用ClientScriptManager向客户端注册脚本
- 浅谈ScriptManager与ClientScriptManager的区别
- 向客户端注册脚本
- Page.ClientScript、ClientScript、ScriptManager、ClientScriptManager 区别是什么
- Page.ClientScript、ClientScript、ScriptManager、ClientScriptManager 区别是什么
- 向客户端注册脚本的方法
- 服务器端向客户端注册脚本
- C#向客户端注册脚本的几种方法
- C#向客户端注册脚本的几种方法
- C#向客户端注册脚本的几种方法
- C#向客户端注册脚本的几种方法
- ScriptManager和ClientScriptManager
- ScriptManager和ClientScriptManager
- MaxFlow(最大流增广路算法)
- 双向广搜
- 迷宫问题(唯一路径)
- 清空内心的杂物
- 基于抛物线的空间两点圆滑线连接程序
- ClientScriptManager与ScriptManager向客户端注册脚本的区别
- 算法导论-DP总结
- Ubuntu探秘之一:BIOS 到底干啥用?
- 多重背包问题
- 我想看看
- 离散时间复指数信号序列周期性质
- Android 多媒体框架中Mediaplayer与Opencore的衔接过程
- IP首部检验和
- 素数测试