在ASP.NET2.0中,ClientScriptManager类通过键String和Type唯一地标识脚本。具有相同的键和类型的脚本被视为重复脚本。因此,我们可以使用脚本类型来避免混淆可能用在页中的来自不同用户控件的相似脚本。
<html>
<head>
<title>ClientScriptManagerExample</title>
</head>
<body>
<formid="Form1"
runat ="server">
<inputtype="text"id="Message"><inputtype="button"value="ClickMe"onclick="DoClick()">
</form>
</body>
</html>
<head>
<title>ClientScriptManagerExample</title>
</head>
<body>
<formid="Form1"
runat ="server">
<inputtype="text"id="Message"><inputtype="button"value="ClickMe"onclick="DoClick()">
</form>
</body>
</html>
1<%@PageLanguage="C#"%>
2<scriptrunat="server">
3publicvoid Page_Load(Objectsender,EventArgse)
4 {
5//定义客户端脚本类型和名称
6Stringcsname1="PopupScript" ;
7Stringcsname2="ButtonClickScript" ;
8Typecstype=this .GetType();
9
10//实例化客户端脚本新类
11ClientScriptManagercs= Page.ClientScript;
12
13//注册客户端起始脚本,在加载页时显示客户端警报消息
14if(! cs.IsStartupScriptRegistered(cstype,csname1))
15 {
16Stringcstext1="alert('HelloWorld');" ;
17cs.RegisterStartupScript(cstype,csname1,cstext1,true );
18 }
19
20//注册客户端执行脚本,定义HTML按钮的onClick事件的客户端处理程序
21if(! cs.IsClientScriptBlockRegistered(cstype,csname2))
22 {
23StringBuildercstext2=new StringBuilder();
24cstext2.Append("<scripttype=text/javascript>functionDoClick(){" );
25cstext2.Append("Form1.Message.value='Textfromclientscript.'}</" );
26cstext2.Append("script>" );
27cs.RegisterClientScriptBlock(cstype,csname2,cstext2.ToString(),false );
28 }
29 }
30</script>
2<scriptrunat="server">
3publicvoid Page_Load(Objectsender,EventArgse)
4 {
5//定义客户端脚本类型和名称
6Stringcsname1="PopupScript" ;
7Stringcsname2="ButtonClickScript" ;
8Typecstype=this .GetType();
9
10//实例化客户端脚本新类
11ClientScriptManagercs= Page.ClientScript;
12
13//注册客户端起始脚本,在加载页时显示客户端警报消息
14if(! cs.IsStartupScriptRegistered(cstype,csname1))
15 {
16Stringcstext1="alert('HelloWorld');" ;
17cs.RegisterStartupScript(cstype,csname1,cstext1,true );
18 }
19
20//注册客户端执行脚本,定义HTML按钮的onClick事件的客户端处理程序
21if(! cs.IsClientScriptBlockRegistered(cstype,csname2))
22 {
23StringBuildercstext2=new StringBuilder();
24cstext2.Append("<scripttype=text/javascript>functionDoClick(){" );
25cstext2.Append("Form1.Message.value='Textfromclientscript.'}</" );
26cstext2.Append("script>" );
27cs.RegisterClientScriptBlock(cstype,csname2,cstext2.ToString(),false );
28 }
29 }
30</script>