Exportar (0) Imprimir
Expandir todo

ScriptReference (Clase)

Actualización: noviembre 2007

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

Espacio de nombres:  System.Web.UI
Ensamblado:  System.Web.Extensions (en System.Web.Extensions.dll)

[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class ScriptReference
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public class ScriptReference
public class ScriptReference

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

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

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

La propiedad ScriptMode se establece para indicar si se va a utilizar la versión de depuración o de lanzamiento del script.

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

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

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

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

Para utilizar 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 incrustar un archivo JavaScript en un ensamblado, vea Tutorial: Incrustar un archivo JavaScript como 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>


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

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);
            }
        }
    }
}


El ejemplo siguiente muestra el archivo JavaScript auxiliar.

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);
    }
}



El ejemplo siguiente 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")]


System.Object
  System.Web.UI.ScriptReference

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft