在ASP.NET中,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>