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
如果要用 <script>
和 </script>
标记括起脚本块,则为 true
;否则为 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 库依赖项。 仅当表示正在更新的控件内的UpdatePanel控件时control
,才向页面发送使用此方法注册的客户端脚本块。 若要每次发生异步回发时注册脚本块,请使用 RegisterClientScriptBlock(Page, Type, String, String, Boolean) 此方法的重载。
如果要注册与分页更新无关的ClientScriptManager脚本块,并且如果要在初始页面呈现期间仅注册脚本块一次,请使用RegisterClientScriptBlock类的方法。 可以从页面的属性获取对对象的ClientScript引用ClientScriptManager。
true
如果是addScriptTags
,该方法会在RegisterClientScriptBlock脚本块周围添加<script>
标记。 false
如果要自行创建<script>
标记,如想要设置特定<script>
标记的属性时传递。 如果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
如果要用 <script>
和 </script>
标记括起脚本块,则为 true
;否则为 false
。
例外
注解
使用此方法注册脚本块时,每次发生异步回发时,都会呈现该脚本。 若要为控件内的 UpdatePanel 控件注册脚本块,以便仅在更新控件时 UpdatePanel 注册脚本,请使用 RegisterClientScriptBlock(Control, Type, String, String, Boolean) 此方法的重载。
如果要注册与分页更新无关的ClientScriptManager脚本块,并且如果要在初始页面呈现期间仅注册脚本块一次,请使用RegisterClientScriptBlock类的方法。 可以从页面的属性获取对对象的ClientScript引用ClientScriptManager。