ScriptReference Clase

Definición

Registra un archivo ECMAScript (JavaScript) para su uso en una página web ASP.NET.

public ref class ScriptReference : System::Web::UI::ScriptReferenceBase
public class ScriptReference : System.Web.UI.ScriptReferenceBase
type ScriptReference = class
    inherit ScriptReferenceBase
Public Class ScriptReference
Inherits ScriptReferenceBase
Herencia
ScriptReference

Ejemplos

En el ejemplo siguiente se muestra cómo hacer referencia a un control personalizado y a un archivo JavaScript incrustado en el ensamblado de control. Se supone que el ensamblado está en la carpeta Bin del sitio web. El control personalizado anima los UpdatePanel controles. El archivo JavaScript se compila como un recurso incrustado denominado SampleControl.UpdatePanelAnimation.js. El archivo JavaScript insertado se registra mediante las Assembly propiedades y Name .

Para usar este ejemplo, compile el archivo JavaScript que se muestra en el ejemplo como un recurso incrustado con el control personalizado. Coloque el ensamblado resultante en la carpeta Bin del sitio web. Para obtener un ejemplo de cómo insertar un archivo JavaScript en un ensamblado, vea Tutorial: Inserción de un archivo JavaScript como un recurso en un ensamblado.

En el ejemplo siguiente se muestra una página que usa el control personalizado.

<%@ Page Language="C#" %>
<%@ Register TagPrefix="Samples" Namespace="SampleControl" Assembly="SampleControl" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>ScriptReference</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" 
                                 EnablePartialRendering="True"
                                 runat="server">
             <Scripts>
                <asp:ScriptReference Assembly="SampleControl" Name="SampleControl.UpdatePanelAnimation.js" />
             </Scripts>
            </asp:ScriptManager>
            
                       
            <Samples:UpdatePanelAnimationWithClientResource 
                     ID="UpdatePanelAnimator1"
                     BorderColor="Green"
                     Animate="true"
                     UpdatePanelID="UpdatePanel1"
                     runat="server" >
            </Samples:UpdatePanelAnimationWithClientResource>
            <asp:UpdatePanel ID="UpdatePanel1" 
                               UpdateMode="Conditional"
                               runat="server">
                <ContentTemplate>
                    <asp:Calendar ID="Calendar2" 
                                  runat="server">
                    </asp:Calendar>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="true" %>

<%@ Register TagPrefix="Samples" Namespace="SampleControl" Assembly="SampleControl" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>ScriptReference</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" 
                                 EnablePartialRendering="True"
                                 runat="server">
             <Scripts>
                <asp:ScriptReference Assembly="SampleControl" Name="SampleControl.UpdatePanelAnimation.js" />
             </Scripts>
            </asp:ScriptManager>
            
                       
            <Samples:UpdatePanelAnimationWithClientResource 
                     ID="UpdatePanelAnimator1"
                     BorderColor="Green"
                     Animate="true"
                     UpdatePanelID="UpdatePanel1"
                     runat="server" >
            </Samples:UpdatePanelAnimationWithClientResource>
            <asp:UpdatePanel ID="UpdatePanel1" 
                               UpdateMode="Conditional"
                               runat="server">
                <ContentTemplate>
                    <asp:Calendar ID="Calendar2" 
                                  runat="server">
                    </asp:Calendar>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </form>
</body>
</html>

En el ejemplo siguiente se muestra la definición de clase de control personalizada.

using System;
using System.Drawing;
using System.Web.UI;
using System.Web;
using System.Globalization;

namespace SampleControl
{
    public class UpdatePanelAnimationWithClientResource : Control
    {
        private string _updatePanelID;
        private Color _borderColor;
        private Boolean _animate;
        public Color BorderColor
        {
            get
            {
                return _borderColor;
            }
            set
            {
                _borderColor = value;
            }
        }

        public string UpdatePanelID
        {
            get
            {
                return _updatePanelID;
            }
            set
            {
                _updatePanelID = value;
            }
        }

        public Boolean Animate
        {
            get
            {
                return _animate;
            }
            set
            {
                _animate = value;
            }
        }
        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
            if (Animate)
            {

                UpdatePanel updatePanel = (UpdatePanel)FindControl(UpdatePanelID);

                string script = String.Format(
                   CultureInfo.InvariantCulture,
                   @"
Sys.Application.add_load(function(sender, args) {{
var {0}_borderAnimation = new BorderAnimation('{1}');
var panelElement = document.getElementById('{0}');
     if (args.get_isPartialLoad()) {{
        {0}_borderAnimation.animate(panelElement);
    }}
}})
",
                   updatePanel.ClientID,
                   ColorTranslator.ToHtml(BorderColor));

                ScriptManager.RegisterStartupScript(
                    this,
                    typeof(UpdatePanelAnimationWithClientResource),
                    ClientID,
                    script,
                    true);
            }
        }
    }
}
Imports System.Web.UI
Imports System.Drawing
Imports System.Globalization

Public Class UpdatePanelAnimationWithClientResource
    Inherits Control

    Private _updatePanelID As String
    Private _borderColor As Color
    Private _animate As Boolean

    Public Property BorderColor() As Color
        Get
            Return _borderColor
        End Get
        Set(ByVal value As Color)
            _borderColor = value
        End Set
    End Property

    Public Property UpdatePanelID() As String
        Get
            Return _updatePanelID
        End Get
        Set(ByVal value As String)
            _updatePanelID = value
        End Set
    End Property

    Public Property Animate() As Boolean
        Get
            Return _animate
        End Get
        Set(ByVal value As Boolean)
            _animate = value
        End Set
    End Property

    Protected Overrides Sub OnPreRender(ByVal e As EventArgs)
        MyBase.OnPreRender(e)
        If (Animate) Then

            Dim updatePanel As UpdatePanel = CType(Me.FindControl(UpdatePanelID), UpdatePanel)

            Dim script As String = String.Format( _
                   CultureInfo.InvariantCulture, _
                   "Sys.Application.add_load(function(sender, args) {{var {0}_borderAnimation = new BorderAnimation('{1}');var panelElement = document.getElementById('{0}');if (args.get_isPartialLoad()) {{{0}_borderAnimation.animate(panelElement);}}}});", _
                   updatePanel.ClientID, _
                   ColorTranslator.ToHtml(BorderColor))


            ScriptManager.RegisterStartupScript( _
                Me, _
                GetType(UpdatePanelAnimationWithClientResource), _
                ClientID, _
                script, _
                True)
        End If
    End Sub
End Class

En el ejemplo siguiente se muestra el archivo JavaScript compatible.

BorderAnimation = function(color) {
    this._color = color;
}

BorderAnimation.prototype = {
    animate: function(panelElement) {
        var s = panelElement.style;
        s.borderWidth = '2px';
        s.borderColor = this._color;
        s.borderStyle = 'solid';

        window.setTimeout(
            function() {{
                s.borderWidth = 0;
            }},
            500);
    }
}

En el ejemplo siguiente se muestra el código que debe agregar al archivo AssemblyInfo del proyecto que contiene el control personalizado y el archivo JavaScript.

[assembly: System.Web.UI.WebResource("SampleControl.UpdatePanelAnimation.js", "application/x-javascript")]
<Assembly: System.Web.UI.WebResource("SampleControl.UpdatePanelAnimation.js", "application/x-javascript")>

Comentarios

Puede incluir un archivo JavaScript en una página web de ASP.NET registrándolo a través de un ScriptReference objeto . Puede registrar un archivo de script que se encuentra como un archivo de .js (un archivo de script estático) en el sitio web. También puede registrar un archivo de script incrustado como un recurso en un ensamblado. Después de registrar el archivo de script, puede usar sus funciones en el script de cliente en la página web.

Para registrar un archivo de script estático, establezca la Path propiedad del ScriptReference objeto en la ubicación relativa del archivo.

Para registrar un archivo de script incrustado como recurso en un ensamblado, establezca la Assembly propiedad en el nombre del ensamblado que contiene el archivo. A continuación, establezca la Name propiedad en el nombre del archivo .js incrustado en el ensamblado. En ese caso, el archivo de script debe estar incrustado, no vinculado.

Establezca la ScriptMode propiedad para indicar si se va a usar la versión de depuración o versión del script.

El Auto valor genera resultados diferentes en función de si hace referencia a un archivo de script independiente o a un archivo de script incrustado como un recurso en un ensamblado. Un archivo de script independiente se define con la Path propiedad . Se debe tener acceso a una referencia de ensamblado a través de las Name propiedades y Assembly . Los resultados del Auto valor son los siguientes:

  • Cuando se aplica a un archivo de script independiente donde se especifica la Path propiedad, el Auto valor es equivalente a Release.

  • Cuando se aplica a una referencia de script en un ensamblado, Auto es equivalente a Inherit. Cuando solo Name se especifica , se usa para hacer referencia al script. Cuando Name se especifican y la Path propiedad , la Path propiedad se usa en lugar de Name, pero el Auto valor sigue siendo equivalente a Inherit.

Constructores

ScriptReference()

Inicializa una nueva instancia de la clase ScriptReference.

ScriptReference(String)

Inicializa una nueva instancia de la clase ScriptReference utilizando una ruta de acceso especificada.

ScriptReference(String, String)

Inicializa una nueva instancia de la clase ScriptReference utilizando un nombre y ensamblado especificados.

Propiedades

Assembly

Obtiene o establece el nombre del ensamblado que contiene el archivo de script de cliente como recurso incrustado.

IgnoreScriptPath
Obsoletos.

Obtiene o establece un valor que indica si la propiedad ScriptPath se incluye en la dirección URL cuando se registra un archivo de script de cliente desde un recurso.

Name

Obtiene o establece el nombre del recurso incrustado que contiene el archivo de script de cliente.

NotifyScriptLoaded
Obsoletos.

Obtiene o establece un valor que indica si el objeto ScriptResourceHandler agrega automáticamente código al final del archivo ECMAScript (JavaScript) para llamar al método NotifyScriptLoaded del cliente de la clase Sys.Application.

(Heredado de ScriptReferenceBase)
Path

Obtiene o establece la ruta de acceso del archivo de script de cliente al que se hace referencia, relativa a la página web.

(Heredado de ScriptReferenceBase)
ResourceUICultures

Obtiene o establece una lista con las referencias culturales de interfaz de usuario, separadas por coma, que admite la propiedad Path.

(Heredado de ScriptReferenceBase)
ScriptMode

Obtiene o establece la versión (lanzamiento o depuración) del archivo de script de cliente que se va a utilizar.

(Heredado de ScriptReferenceBase)

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetUrl(ScriptManager, Boolean)

Recupera la dirección URL que se representa como valor del atributo src del elemento script.

IsAjaxFrameworkScript(ScriptManager)

Determina si la referencia de script es un script AJAX.

IsAjaxFrameworkScript(ScriptManager)

Determina si la referencia de script especificada es un script ASP.NET AJAX.

(Heredado de ScriptReferenceBase)
IsFromSystemWebExtensions()
Obsoletos.

Indica si el script compuesto contiene una referencia a un script del marco de trabajo ASP.NET AJAX.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el valor de la propiedad Name, la propiedad Path o el nombre del tipo.

Se aplica a