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