ScriptManager.RegisterClientScriptBlock Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Registra un bloque de script de cliente con el control ScriptManager para usarlo con un control que está dentro de un control UpdatePanel y, a continuación, agrega el bloque de script a la página.
Sobrecargas
RegisterClientScriptBlock(Control, Type, String, String, Boolean) |
Registra un bloque de script de cliente con el control ScriptManager para usarlo con un control que está dentro de un control UpdatePanel y, a continuación, agrega el bloque de script a la página. |
RegisterClientScriptBlock(Page, Type, String, String, Boolean) |
Registra un bloque de script de cliente con el control ScriptManager para usarlo con un control que está dentro de un control UpdatePanel y, a continuación, agrega el bloque de script a la página. |
RegisterClientScriptBlock(Control, Type, String, String, Boolean)
Registra un bloque de script de cliente con el control ScriptManager para usarlo con un control que está dentro de un control UpdatePanel y, a continuación, agrega el bloque de script a la página.
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)
Parámetros
- control
- Control
Control que registra el bloque de script de cliente.
- type
- Type
Tipo del bloque de script de cliente. Este parámetro se suele especificar mediante el uso del operador typeof
(C#) o GetType
(Visual Basic) para recuperar el tipo del control que registra el script.
- key
- String
Identificador único del bloque de script.
- script
- String
Script.
- addScriptTags
- Boolean
true
para incluir el bloque de script entre etiquetas <script>
y </script>
; de lo contrario, false
.
Excepciones
El valor de type
para el bloque de script de cliente es null
.
o bien
El control que registra el bloque de script es null
.
El control que registra el bloque de script no está en el árbol de controles de la página.
Ejemplos
<%@ 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>
Comentarios
Use el RegisterClientScriptBlock método para registrar un bloque de script de cliente compatible con la representación parcial de páginas y que no tenga Microsoft dependencias de la biblioteca de Ajax. Los bloques de script de cliente registrados mediante este método se envían a la página solo cuando control
representa un control que está dentro de un UpdatePanel control que se está actualizando. Para registrar un bloque de script cada vez que se produce un postback asincrónico, use la RegisterClientScriptBlock(Page, Type, String, String, Boolean) sobrecarga de este método.
Si desea registrar un bloque de script que no pertenece a actualizaciones parciales de páginas y si desea registrar el bloque de script solo una vez durante la representación inicial de página, use el RegisterClientScriptBlock método de la ClientScriptManager clase . Puede obtener una referencia al ClientScriptManager objeto desde la ClientScript propiedad de la página.
Si addScriptTags
es true
, el RegisterClientScriptBlock método agrega <script>
etiquetas alrededor del bloque de script. Pase false
si desea crear <script>
etiquetas usted mismo, como cuando quiera establecer los atributos de etiquetas específicas <script>
. Si addScriptTags
es false
y el script
parámetro contiene varios bloques de script, se produce una excepción.
El RegisterClientScriptBlock método agrega un bloque de script a la página después de la etiqueta de apertura <form>
. No se garantiza que los bloques de script sean de salida en el mismo orden en el que están registrados. Si el orden de los bloques de script es importante, concatene los bloques de script en una sola cadena (por ejemplo, mediante el StringBuilder objeto ) y, a continuación, regístrelos como un único bloque de script de cliente.
Consulte también
Se aplica a
RegisterClientScriptBlock(Page, Type, String, String, Boolean)
Registra un bloque de script de cliente con el control ScriptManager para usarlo con un control que está dentro de un control UpdatePanel y, a continuación, agrega el bloque de script a la página.
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)
Parámetros
- page
- Page
Objeto de página que registra el bloque de script de cliente.
- type
- Type
Tipo del bloque de script de cliente. Este parámetro se suele especificar mediante el uso del operador typeof
(C#) o GetType
(Visual Basic) para recuperar el tipo del control que registra el script.
- key
- String
Identificador único del bloque de script.
- script
- String
Script que se va a registrar.
- addScriptTags
- Boolean
true
para incluir el bloque de script entre etiquetas <script>
y </script>
; de lo contrario, false
.
Excepciones
El valor de type
para el bloque de script es null
.
o bien
La página que registra el bloque de script es null
.
Comentarios
Al registrar un bloque de script mediante este método, el script se representa cada vez que se produce una postback asincrónica. Para registrar un bloque de script para un control que se encuentra dentro de un UpdatePanel control para que el script solo se registre cuando se actualice el UpdatePanel control, use la RegisterClientScriptBlock(Control, Type, String, String, Boolean) sobrecarga de este método.
Si desea registrar un bloque de script que no pertenece a actualizaciones parciales de páginas y si desea registrar el bloque de script solo una vez durante la representación inicial de página, use el RegisterClientScriptBlock método de la ClientScriptManager clase . Puede obtener una referencia al ClientScriptManager objeto desde la ClientScript propiedad de la página.