ScriptManager.RegisterClientScriptBlock 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用 ScriptManager 控制項註冊用戶端指令碼區塊,以配合 UpdatePanel 控制項內部的控制項一起使用,並將指令碼區塊加入網頁中。
多載
RegisterClientScriptBlock(Control, Type, String, String, Boolean) |
使用 ScriptManager 控制項註冊用戶端指令碼區塊,以配合 UpdatePanel 控制項內部的控制項一起使用,並將指令碼區塊加入網頁中。 |
RegisterClientScriptBlock(Page, Type, String, String, Boolean) |
使用 ScriptManager 控制項註冊用戶端指令碼區塊,以配合 UpdatePanel 控制項內部的控制項一起使用,並將指令碼區塊加入網頁中。 |
RegisterClientScriptBlock(Control, Type, String, String, Boolean)
使用 ScriptManager 控制項註冊用戶端指令碼區塊,以配合 UpdatePanel 控制項內部的控制項一起使用,並將指令碼區塊加入網頁中。
public:
static void RegisterClientScriptBlock(System::Web::UI::Control ^ control, Type ^ type, System::String ^ key, System::String ^ script, bool addScriptTags);
public static void RegisterClientScriptBlock (System.Web.UI.Control control, Type type, string key, string script, bool addScriptTags);
static member RegisterClientScriptBlock : System.Web.UI.Control * Type * string * string * bool -> unit
Public Shared Sub RegisterClientScriptBlock (control As Control, type As Type, key As String, script As String, addScriptTags As Boolean)
參數
- control
- Control
要註冊用戶端指令碼區塊的控制項。
- type
- Type
用戶端指令碼區塊的類型。 此參數通常會透過 typeof
運算子 (C#) 或 GetType
運算子 (Visual Basic) 指定,用以擷取註冊指令碼的控制項類型。
- key
- String
指令碼區塊的唯一識別項。
- script
- String
指令碼。
- addScriptTags
- Boolean
若要將指令碼區塊含括在 true
和 <script>
標記中,則為 </script>
,否則為 false
。
例外狀況
正在註冊指令碼區塊的控制項不在網頁的控制項樹狀結構中。
範例
<%@ 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">
protected void Page_PreRender(object sender, EventArgs e)
{
string script = @"
function ToggleItem(id)
{
var elem = $get('div'+id);
if (elem)
{
if (elem.style.display != 'block')
{
elem.style.display = 'block';
elem.style.visibility = 'visible';
}
else
{
elem.style.display = 'none';
elem.style.visibility = 'hidden';
}
}
}
";
ScriptManager.RegisterClientScriptBlock(
this,
typeof(Page),
"ToggleScript",
script,
true);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>ScriptManager RegisterClientScriptInclude</title>
</head>
<body>
<form id="Form1" runat="server">
<div>
<br />
<asp:ScriptManager ID="ScriptManager1"
EnablePartialRendering="true"
runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1"
UpdateMode="Conditional"
runat="server">
<ContentTemplate>
<asp:XmlDataSource ID="XmlDataSource1"
DataFile="~/App_Data/Contacts.xml"
XPath="Contacts/Contact"
runat="server"/>
<asp:DataList ID="DataList1" DataSourceID="XmlDataSource1"
BackColor="White" BorderColor="#E7E7FF" BorderStyle="None"
BorderWidth="1px" CellPadding="3" GridLines="Horizontal"
runat="server">
<ItemTemplate>
<div style="font-size:larger; font-weight:bold; cursor:pointer;"
onclick='ToggleItem(<%# Eval("ID") %>);'>
<span><%# Eval("Name") %></span>
</div>
<div id='div<%# Eval("ID") %>'
style="display: block; visibility: visible;">
<span><%# Eval("Company") %></span>
<br />
<a href='<%# Eval("URL") %>'
target="_blank"
title='<%# Eval("Name", "Link to the {0} Web site") %>'>
<%# Eval("URL") %></a>
</asp:LinkButton>
<hr />
</div>
</ItemTemplate>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<SelectedItemStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<AlternatingItemStyle BackColor="#F7F7F7" />
<ItemStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
</asp:DataList>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</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_PreRender(ByVal sender As Object, ByVal e As System.EventArgs)
Dim script As String
script = _
"function ToggleItem(id)" & _
" {" & _
" var elem = $get('div'+id);" & _
" if (elem)" & _
" {" & _
" if (elem.style.display != 'block') " & _
" {" & _
" elem.style.display = 'block';" & _
" elem.style.visibility = 'visible';" & _
" } " & _
" else" & _
" {" & _
" elem.style.display = 'none';" & _
" elem.style.visibility = 'hidden';" & _
" }" & _
" }" & _
" }"
ScriptManager.RegisterClientScriptBlock( _
Me, _
GetType(Page), _
"ToggleScript", _
script, _
True)
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>ScriptManager RegisterClientScriptInclude</title>
</head>
<body>
<form id="Form1" runat="server">
<div>
<br />
<asp:ScriptManager ID="ScriptManager1"
EnablePartialRendering="true"
runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1"
UpdateMode="Conditional"
runat="server">
<ContentTemplate>
<asp:XmlDataSource ID="XmlDataSource1"
DataFile="~/App_Data/Contacts.xml"
XPath="Contacts/Contact"
runat="server"/>
<asp:DataList ID="DataList1" DataSourceID="XmlDataSource1"
BackColor="White" BorderColor="#E7E7FF" BorderStyle="None"
BorderWidth="1px" CellPadding="3" GridLines="Horizontal"
runat="server">
<ItemTemplate>
<div style="font-size:larger; font-weight:bold; cursor:pointer;"
onclick='ToggleItem(<%# Eval("ID") %>);'>
<span><%# Eval("Name") %></span>
</div>
<div id='div<%# Eval("ID") %>'
style="display: block; visibility: visible;">
<span><%# Eval("Company") %></span>
<br />
<a href='<%# Eval("URL") %>'
target="_blank"
title='<%# Eval("Name", "Link to the {0} Web site") %>'>
<%# Eval("URL") %></a>
</asp:LinkButton>
<hr />
</div>
</ItemTemplate>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<SelectedItemStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<AlternatingItemStyle BackColor="#F7F7F7" />
<ItemStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
</asp:DataList>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
<Contacts>
<Contact id="1"
Name="Aaber, Jesper"
Company="A. Data Corporation"
URL="http://www.adatum.com/"/>
<Contact id="2"
Name="Canel, Fabrice"
Company="Coho Winery"
URL="http://www.cohowinery.com/"/>
<Contact id="3"
Name="Heloo, Waleed"
Company="Contoso, Ltd"
URL="http://www.contoso.com/"/>
<Contact id="4"
Name="Rovik, Dag"
Company="Wingtip Toys"
URL="http://www.wingtiptoys.com/"/>
</Contacts>
備註
您可以使用 RegisterClientScriptBlock 方法來註冊與部分頁面轉譯相容的用戶端腳本區塊,而且沒有Microsoft Ajax 程式庫相依性。 只有在代表正在更新之控制項內的控制項時 control
,才會將使用此方法註冊的 UpdatePanel 用戶端腳本區區塊轉送至頁面。 若要在每次發生非同步回傳時註冊腳本區塊,請使用 RegisterClientScriptBlock(Page, Type, String, String, Boolean) 此方法的多載。
如果您想要註冊與部分頁面更新無關的腳本區塊,而且如果您想要在初始頁面轉譯期間只註冊腳本區塊一次,請使用 RegisterClientScriptBlock 類別的 ClientScriptManager 方法。 您可以從頁面的 屬性取得 物件的 ClientScript 參考 ClientScriptManager 。
如果 為 addScriptTags
true
,則 RegisterClientScriptBlock 方法會在腳本區塊周圍新增 <script>
標籤。 如果您想要自行建立 <script>
標記,例如當您想要設定特定 <script>
標籤的屬性時,請傳遞 false
。 如果 是 addScriptTags
false
且 script
參數包含多個腳本區塊,則會擲回例外狀況。
方法會在 RegisterClientScriptBlock 開啟 <form>
標籤之後,將腳本區塊新增至頁面。 腳本區塊不保證會依註冊的順序輸出。 如果腳本區塊的順序很重要,請將腳本區塊串連成單一字串 (例如使用 StringBuilder 物件) ,然後將它們註冊為單一用戶端腳本區塊。
另請參閱
適用於
RegisterClientScriptBlock(Page, Type, String, String, Boolean)
使用 ScriptManager 控制項註冊用戶端指令碼區塊,以配合 UpdatePanel 控制項內部的控制項一起使用,並將指令碼區塊加入網頁中。
public:
static void RegisterClientScriptBlock(System::Web::UI::Page ^ page, Type ^ type, System::String ^ key, System::String ^ script, bool addScriptTags);
public static void RegisterClientScriptBlock (System.Web.UI.Page page, Type type, string key, string script, bool addScriptTags);
static member RegisterClientScriptBlock : System.Web.UI.Page * Type * string * string * bool -> unit
Public Shared Sub RegisterClientScriptBlock (page As Page, type As Type, key As String, script As String, addScriptTags As Boolean)
參數
- page
- Page
要註冊用戶端指令碼區塊的頁面物件。
- type
- Type
用戶端指令碼區塊的類型。 此參數通常會透過 typeof
運算子 (C#) 或 GetType
運算子 (Visual Basic) 指定,用以擷取註冊指令碼的控制項類型。
- key
- String
指令碼區塊的唯一識別項。
- script
- String
要註冊的指令碼。
- addScriptTags
- Boolean
若要將指令碼區塊含括在 true
和 <script>
標記中,則為 </script>
,否則為 false
。
例外狀況
備註
當您使用此方法註冊腳本區塊時,每次發生非同步回傳時,就會轉譯腳本。 若要為控制項內的 UpdatePanel 控制項註冊腳本區塊,以便只在更新控制項時 UpdatePanel 註冊腳本,請使用 RegisterClientScriptBlock(Control, Type, String, String, Boolean) 這個方法的多載。
如果您想要註冊與部分頁面更新無關的腳本區塊,而且如果您想要在初始頁面轉譯期間只註冊腳本區塊一次,請使用 RegisterClientScriptBlock 類別的 ClientScriptManager 方法。 您可以從頁面的 屬性取得 物件的 ClientScript 參考 ClientScriptManager 。