ClientScriptManager 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
定義用來管理 Web 應用程式中用戶端指令碼的方法。
public ref class ClientScriptManager sealed
public sealed class ClientScriptManager
type ClientScriptManager = class
Public NotInheritable Class ClientScriptManager
- 繼承
-
ClientScriptManager
範例
下列程式碼範例示範 如何使用 RegisterClientScriptBlock 類別的 ClientScriptManager 方法。 頁面定義了兩個用戶端腳本: PopupScript
,這會在載入頁面時顯示警示訊息,以及 ButtonClickScript
定義 HTML 按鈕 onClick
事件的用戶端處理常式。
<%@ Page Language="C#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public void Page_Load(Object sender, EventArgs e)
{
// Define the name and type of the client scripts on the page.
String csname1 = "PopupScript";
String csname2 = "ButtonClickScript";
Type cstype = this.GetType();
// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;
// Check to see if the startup script is already registered.
if (!cs.IsStartupScriptRegistered(cstype, csname1))
{
String cstext1 = "alert('Hello World');";
cs.RegisterStartupScript(cstype, csname1, cstext1, true);
}
// Check to see if the client script is already registered.
if (!cs.IsClientScriptBlockRegistered(cstype, csname2))
{
StringBuilder cstext2 = new StringBuilder();
cstext2.Append("<script type=\"text/javascript\"> function DoClick() {");
cstext2.Append("Form1.Message.value='Text from client script.'} </");
cstext2.Append("script>");
cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<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>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
' Define the name and type of the client scripts on the page.
Dim csname1 As String = "PopupScript"
Dim csname2 As String = "ButtonClickScript"
Dim cstype As Type = Me.GetType()
' Get a ClientScriptManager reference from the Page class.
Dim cs As ClientScriptManager = Page.ClientScript
' Check to see if the startup script is already registered.
If (Not cs.IsStartupScriptRegistered(cstype, csname1)) Then
Dim cstext1 As String = "alert('Hello World');"
cs.RegisterStartupScript(cstype, csname1, cstext1, True)
End If
' Check to see if the client script is already registered.
If (Not cs.IsClientScriptBlockRegistered(cstype, csname2)) Then
Dim cstext2 As New StringBuilder()
cstext2.Append("<script type=""text/javascript""> function DoClick() {")
cstext2.Append("Form1.Message.value='Text from client script.'} </")
cstext2.Append("script>")
cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), False)
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<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>
備註
類別 ClientScriptManager 可用來管理用戶端腳本,並將其新增至 Web 應用程式。 您可以從 物件的 屬性取得 類別的 Page 參考 ClientScriptManager ClientScript 。
您可以將用戶端腳本以宣告方式新增至網頁,方法是在頁面的 HTML 標籤中包含腳本。 不過,在某些情況下需要動態新增用戶端腳本。 若要動態新增腳本,請使用 RegisterClientScriptBlock 方法、 RegisterClientScriptInclude 方法、 RegisterStartupScript 方法或 RegisterOnSubmitStatement 方法,視您想要新增腳本的時機和方式而定。 如需詳細資訊,請參閱如何:動態新增用戶端腳本至 ASP.NET Web Pages。
類別 ClientScriptManager 可唯一識別索引鍵 String 和 Type 的腳本。 具有相同索引鍵和類型的腳本會被視為重複專案。 使用腳本類型有助於避免與頁面上可能正在使用的不同使用者控制項混淆類似的腳本。
ClientScriptManager當想要從用戶端執行伺服器程式碼而不執行回傳時,類別可用來叫用用戶端回呼。 這稱為對伺服器執行頻外回呼。 在用戶端回呼中,用戶端腳本函式會將非同步要求傳送至 ASP.NET 網頁。 網頁會執行其正常生命週期的修改版本來處理回呼。 GetCallbackEventReference使用 方法來取得用戶端函式的參考,該函式會在叫用時起始伺服器事件的用戶端回呼。 如需詳細資訊,請參閱 實作不含回傳的用戶端回呼。
注意
腳本回呼無法在不支援檔物件模型 (DOM) 的舊版瀏覽器中運作,而且需要用戶端上啟用 ECMAScript。 若要檢查瀏覽器是否支援回呼,請使用 SupportsCallback 屬性,該屬性可透過 Browser ASP.NET 內部 Request 物件的 屬性來存取。
GetPostBackEventReference使用 方法和 方法來 GetPostBackClientHyperlink 定義用戶端回傳事件。 這些方法會在叫用時啟用用戶端腳本函式,讓伺服器回傳至頁面。 用戶端回傳事件與用戶端回呼不同,網頁會完成正常生命週期來處理用戶端回傳事件。
注意
如果您使用 Button 控制項,且 UseSubmitBehavior 屬性設定為 false
,則您可以使用 GetPostBackEventReference 方法傳回控制項的 Button 用戶端回傳事件。
控制項 OnClientClick 、 ImageButton 控制項和 LinkButton 控制項的 Button 屬性可用來執行用戶端腳本。