随笔 - 153  文章 - 1  评论 - 1722  阅读 - 215万

ClientScriptManager 管理客户端脚本

ClientScriptManager 类用于管理客户端脚本并将它们添加到 Web 应用程序中。可以从 Page 对象的 ClientScript 属性获取对 ClientScriptManager 类的引用。

通过在网页的 HTML 标记中包含脚本,可以声明方式向网页添加客户端脚本。然而,有些情况下需要动态添加客户端脚本。若要动态添加脚本,根据您想添加脚本的时间及方式,使用 RegisterClientScriptBlock 方法、RegisterClientScriptInclude 方法、RegisterStartupScript 方法或 RegisterOnSubmitStatement 方法。

ClientScriptManager 类通过键 String 和 Type 唯一地标识脚本。具有相同的键和类型的脚本被视为重复脚本。使用脚本类型有助于避免混淆可能用在页中的来自不同用户控件的相似脚本。

懒得翻MSDN的人还是有的,所有就将ClientScriptManager的成员方法帖出来

 

名称

说明

 

Equals

确定指定的 Object 是否等于当前的 Object (继承自 Object。)

 

Finalize

允许 Object "垃圾回收"回收 Object 之前尝试释放资源并执行其他清理操作。 (继承自 Object。)

 

GetCallbackEventReference

已重载。 获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器事件的客户端回调。

 

GetHashCode

用作特定类型的哈希函数。 (继承自 Object。)

 

GetPostBackClientHyperlink

已重载。 获取一个引用,并将 javascript: 追加到引用的开始处,用于在客户端事件中回发到服务器。

 

GetPostBackEventReference

已重载。 返回一个可以在客户端事件中使用的字符串,以便回发到服务器。

 

GetType

获取当前实例的 Type (继承自 Object。)

 

GetWebResourceUrl

获取对程序集内资源的 URL 引用。

 

IsClientScriptBlockRegistered

已重载。 确定 Page 对象是否注册了客户端脚本块。

 

IsClientScriptIncludeRegistered

已重载。 确定 Page 对象是否注册了客户端脚本包含。

 

IsOnSubmitStatementRegistered

已重载。 确定 Page 对象是否注册了 OnSubmit 语句。

 

IsStartupScriptRegistered

已重载。 确定 Page 对象是否注册了启动脚本。

 

MemberwiseClone

创建当前 Object 的浅表副本。 (继承自 Object。)

 

RegisterArrayDeclaration

使用数组名称和数组值向 Page 对象注册 JavaScript 数组声明。

 

RegisterClientScriptBlock

已重载。 Page 对象注册客户端脚本。

 

RegisterClientScriptInclude

已重载。 Page 对象注册客户端脚本包含。

 

RegisterClientScriptResource

使用类型和资源名向 Page 对象注册客户端脚本资源。

 

RegisterExpandoAttribute

已重载。 将名称/值对注册为指定控件的自定义 (expando) 属性。

 

RegisterForEventValidation

已重载。 为验证注册事件引用。

 

RegisterHiddenField

Page 对象注册一个隐藏值。

 

RegisterOnSubmitStatement

使用类型、键和脚本文本向 Page 对象注册 OnSubmit 语句。该语句在提交 HtmlForm 时执行。

 

RegisterStartupScript

已重载。 Page 对象注册启动脚本。

 

ToString

返回表示当前 Object String (继承自 Object。)

 

ValidateEvent

已重载。 验证客户端事件。

 

下面来看一个示例:
<%@ Page Language="C#"%>

<!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>
<script runat="server">

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
     }
</script>
</head>
<body>
    <form id="form1" runat="server">
         <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    </form>
</body>
</html>

生成的HTML代码:

<!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>

 

PS:示例代码是借用JieNet

posted on   Q.Lee.lulu  阅读(841)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
< 2008年2月 >
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示