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 應用程式。 您可以從物件的 屬性取得 類別ClientScript的Page參考ClientScriptManager。
您可以在頁面的 HTML 標記中包含腳本,以宣告方式將用戶端腳本新增至網頁。 不過,在某些情況下,需要動態新增用戶端腳本。 若要動態新增腳本,請使用 RegisterClientScriptBlock 方法、 RegisterClientScriptInclude 方法、 RegisterStartupScript 方法或 RegisterOnSubmitStatement 方法,視您想要新增腳本的時機和方式而定。 如需詳細資訊,請參閱 如何:動態新增用戶端腳本以 ASP.NET 網頁。
類別可 ClientScriptManager 透過索引鍵 String 和 來唯一 Type識別腳本。 具有相同索引鍵和類型的腳本會被視為重複專案。 使用腳本類型有助於避免與頁面上可能正在使用的不同使用者控件混淆類似的腳本。
類別 ClientScriptManager 可用於在想要從客戶端執行伺服器程式代碼而不執行回傳的情況下叫用用戶端回呼。 這稱為對伺服器執行頻外回呼。 在用戶端回呼中,用戶端腳本函式會將異步要求傳送至 ASP.NET 網頁。 網頁會執行其一般生命週期的修改版本,以處理回呼。 GetCallbackEventReference使用 方法來取得用戶端函式的參考,該函式會在叫用時起始伺服器事件的用戶端回呼。 如需詳細資訊,請參閱 實作不含回傳的用戶端回呼。
注意
腳本回呼無法在不支援文件物件模型 (DOM) 的舊版瀏覽器中運作,而且需要在用戶端上啟用 ECMAScript。 若要檢查瀏覽器是否支援回呼,請使用 SupportsCallback 屬性,這個屬性可透過 Browser 內部 Request 物件的 ASP.NET 屬性存取。
GetPostBackEventReference使用方法和方法來GetPostBackClientHyperlink定義用戶端回傳事件。 這些方法會在叫用時啟用用戶端腳本函式,讓伺服器回傳至頁面。 用戶端回傳事件與用戶端回呼不同,網頁完成一般生命週期來處理用戶端回傳事件。
注意
如果您使用 Button 控制項,且 UseSubmitBehavior 屬性設定 false
為 ,您可以使用 GetPostBackEventReference 方法傳回控件的 Button 用戶端回傳事件。
OnClientClick控制項、ImageButton控制項和LinkButton控制件的 Button 屬性可用來執行用戶端文稿。