ScriptManager.RegisterClientScriptBlock Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Rejestruje blok skryptu klienta z ScriptManager kontrolką do użycia z kontrolką UpdatePanel , która znajduje się wewnątrz kontrolki, a następnie dodaje blok skryptu do strony.
Przeciążenia
RegisterClientScriptBlock(Control, Type, String, String, Boolean) |
Rejestruje blok skryptu klienta z ScriptManager kontrolką do użycia z kontrolką UpdatePanel , która znajduje się wewnątrz kontrolki, a następnie dodaje blok skryptu do strony. |
RegisterClientScriptBlock(Page, Type, String, String, Boolean) |
Rejestruje blok skryptu klienta z ScriptManager kontrolką do użycia z kontrolką UpdatePanel , która znajduje się wewnątrz kontrolki, a następnie dodaje blok skryptu do strony. |
RegisterClientScriptBlock(Control, Type, String, String, Boolean)
Rejestruje blok skryptu klienta z ScriptManager kontrolką do użycia z kontrolką UpdatePanel , która znajduje się wewnątrz kontrolki, a następnie dodaje blok skryptu do strony.
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)
Parametry
- control
- Control
Kontrolka rejestrującą blok skryptu klienta.
- type
- Type
Typ bloku skryptu klienta. Ten parametr jest zwykle określany przy użyciu typeof
operatora (C#) lub GetType
operatora (Visual Basic) w celu pobrania typu kontrolki rejestrującej skrypt.
- key
- String
Unikatowy identyfikator bloku skryptu.
- script
- String
Skrypt.
- addScriptTags
- Boolean
true
aby ująć blok skryptu w znaczniki <script>
i </script>
; w przeciwnym razie false
.
Wyjątki
Blok type
skryptu klienta to null
.
-lub-
Kontrolka rejestrującą blok skryptu to null
.
Kontrolka rejestrującą blok skryptu nie znajduje się w drzewie sterowania strony.
Przykłady
<%@ 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>
Uwagi
Metoda służy RegisterClientScriptBlock do rejestrowania bloku skryptu klienta zgodnego z renderowaniem częściowym i bez Microsoft zależności biblioteki Ajax. Bloki skryptu klienta zarejestrowane przy użyciu tej metody są wysyłane do strony tylko wtedy, gdy control
reprezentuje kontrolkę, która znajduje się wewnątrz aktualizowanej UpdatePanel kontrolki. Aby zarejestrować blok skryptu za każdym razem, gdy wystąpi asynchroniczne ogłaszanie zwrotne, użyj RegisterClientScriptBlock(Page, Type, String, String, Boolean) przeciążenia tej metody.
Jeśli chcesz zarejestrować blok skryptu, który nie dotyczy aktualizacji częściowych stron, a jeśli chcesz zarejestrować blok skryptu tylko raz podczas renderowania początkowej strony, użyj RegisterClientScriptBlock metody ClientScriptManager klasy . Odwołanie do ClientScriptManager obiektu można uzyskać z ClientScript właściwości strony.
Jeśli addScriptTags
parametr ma true
wartość , RegisterClientScriptBlock metoda dodaje <script>
tagi wokół bloku skryptu. Przekaż false
, jeśli chcesz samodzielnie utworzyć <script>
tagi, na przykład kiedy chcesz ustawić atrybuty określonych <script>
tagów. Jeśli addScriptTags
parametr ma wartość i false
script
zawiera wiele bloków skryptu, zgłaszany jest wyjątek.
Metoda RegisterClientScriptBlock dodaje blok skryptu do strony po tagu otwierania <form>
. Bloki skryptu nie są gwarantowane jako dane wyjściowe w tej samej kolejności, w jakiej są zarejestrowane. Jeśli kolejność bloków skryptu jest ważna, połącz bloki skryptu w jeden ciąg (na przykład przy użyciu StringBuilder obiektu), a następnie zarejestruj je jako blok pojedynczego skryptu klienta.
Zobacz też
Dotyczy
RegisterClientScriptBlock(Page, Type, String, String, Boolean)
Rejestruje blok skryptu klienta z ScriptManager kontrolką do użycia z kontrolką UpdatePanel , która znajduje się wewnątrz kontrolki, a następnie dodaje blok skryptu do strony.
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)
Parametry
- page
- Page
Obiekt strony rejestrujący blok skryptu klienta.
- type
- Type
Typ bloku skryptu klienta. Ten parametr jest zwykle określany przy użyciu typeof
operatora (C#) lub GetType
operatora (Visual Basic) w celu pobrania typu kontrolki rejestrującej skrypt.
- key
- String
Unikatowy identyfikator bloku skryptu.
- script
- String
Skrypt do zarejestrowania.
- addScriptTags
- Boolean
true
aby ująć blok skryptu w znaczniki <script>
i </script>
; w przeciwnym razie false
.
Wyjątki
Uwagi
Podczas rejestrowania bloku skryptu przy użyciu tej metody skrypt jest renderowany za każdym razem, gdy wystąpi asynchroniczne ogłaszanie zwrotne. Aby zarejestrować blok skryptu dla kontrolki, która znajduje się wewnątrz UpdatePanel kontrolki, aby skrypt był rejestrowany tylko po UpdatePanel zaktualizowaniu kontrolki, użyj RegisterClientScriptBlock(Control, Type, String, String, Boolean) przeciążenia tej metody.
Jeśli chcesz zarejestrować blok skryptu, który nie dotyczy aktualizacji częściowych stron, a jeśli chcesz zarejestrować blok skryptu tylko raz podczas renderowania początkowej strony, użyj RegisterClientScriptBlock metody ClientScriptManager klasy . Odwołanie do ClientScriptManager obiektu można uzyskać z ClientScript właściwości strony.