首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 ClientScriptManager 完整應用指南

     編輯:關於ASP.NET

ClientScriptManager 類別透過「鍵值 + 型別」唯一識別腳本,避免不同使用者控制項產生重複腳本。本文示範啟動腳本與用戶端區塊腳本的註冊技巧。

核心方法比較

方法用途輸出位置
RegisterStartupScript頁面載入完成後執行(如 alert)</form> 前
RegisterClientScriptBlock定義函式、變數供頁面其他處呼叫<form> 後

完整範例:按鈕點擊顯示訊息

<%@ Page Language="C#" %>
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        Type cstype = this.GetType();
        ClientScriptManager cs = Page.ClientScript;

        // 1. 啟動腳本:頁面載入即彈窗
        const string startupKey = "PopupScript";
        if (!cs.IsStartupScriptRegistered(cstype, startupKey))
        {
            string script = "alert('Hello World');";
            cs.RegisterStartupScript(cstype, startupKey, script, true);
        }

        // 2. 用戶端區塊腳本:定義 DoClick 函式
        const string clickKey = "ButtonClickScript";
        if (!cs.IsClientScriptBlockRegistered(cstype, clickKey))
        {
            var sb = new StringBuilder();
            sb.Append("<script type='text/javascript'> function DoClick() {");
            sb.Append("document.getElementById('Message').value='Text from client script.';");
            sb.Append("} </script>");
            cs.RegisterClientScriptBlock(cstype, clickKey, sb.ToString(), false);
        }
    }
</script>

<html>
<body>
    <form id="Form1" runat="server">
        <input type="text" id="Message" />
        <input type="button" value="ClickMe" onclick="DoClick()" />
    </form>
</body>
</html>

關鍵點總結

  • 使用 this.GetType() 作為型別識別子,配合唯一鍵值,防止重複註冊。
  • 最後一個參數 true/false 決定是否自動包裹 <script> 標籤。
  • 搭配 IsStartupScriptRegistered / IsClientScriptBlockRegistered 檢查,避免重複輸出。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved