Compartilhar via


ScriptReference Classe

Definição

Registra um arquivo ECMAScript (JavaScript) para uso em uma página da Web do 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
Herança
ScriptReference

Exemplos

O exemplo a seguir mostra como referenciar um controle personalizado e um arquivo JavaScript inserido no assembly de controle. Supõe-se que o assembly esteja na pasta Bin do site. O controle personalizado anima os controles UpdatePanel . O arquivo JavaScript é compilado como um recurso inserido nomeado SampleControl.UpdatePanelAnimation.js. Registre o arquivo JavaScript inserido usando as propriedades e Name as Assembly propriedades.

Para usar este exemplo, compile o arquivo JavaScript mostrado no exemplo como um recurso inserido com o controle personalizado. Coloque o assembly resultante na pasta Bin do site. Para obter um exemplo de como inserir um arquivo JavaScript em um assembly, consulte Passo a passo: inserindo um arquivo JavaScript como um recurso em um assembly.

O exemplo a seguir mostra uma página que usa o controle 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>

O exemplo a seguir mostra a definição da classe de controle 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

O exemplo a seguir mostra o arquivo JavaScript com suporte.

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

O exemplo a seguir mostra o código que você deve adicionar ao arquivo AssemblyInfo do projeto que contém o controle personalizado e o arquivo JavaScript.

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

Comentários

Você pode incluir um arquivo JavaScript em uma página da Web ASP.NET registrando-o por meio de um ScriptReference objeto. Você pode registrar um arquivo de script localizado como um arquivo de .js (um arquivo de script estático) no site da Web. Você também pode registrar um arquivo de script inserido como um recurso em um assembly. Depois de registrar o arquivo de script, você pode usar suas funções no script do cliente na página da Web.

Para registrar um arquivo de script estático, defina a Path propriedade do ScriptReference objeto como o local relativo do arquivo.

Para registrar um arquivo de script inserido como um recurso em um assembly, defina a Assembly propriedade como o nome do assembly que contém o arquivo. Em seguida, defina a Name propriedade como o nome do arquivo .js inserido no assembly. Nesse caso, o arquivo de script deve ser inserido, não vinculado.

Você define a ScriptMode propriedade para indicar se deseja usar a versão de depuração ou versão do script.

O Auto valor produz resultados diferentes dependendo se ele se refere a um arquivo de script autônomo ou a um arquivo de script inserido como um recurso em um assembly. Um arquivo de script autônomo é definido com a Path propriedade. Uma referência de assembly deve ser acessada por meio do e Assembly das Name propriedades. Os resultados do valor são os Auto seguintes:

  • Quando ele é aplicado a um arquivo de script autônomo em que a Path propriedade é especificada, o Auto valor é equivalente a Release.

  • Quando ela é aplicada a uma referência de script em um assembly, Auto é equivalente a Inherit. Quando é especificado apenas Name , ele é usado para referenciar o script. Quando Name e a Path propriedade são especificadas, a Path propriedade é usada em vez de Name, mas o Auto valor ainda é equivalente a Inherit.

Construtores

ScriptReference()

Inicializa uma nova instância da classe ScriptReference.

ScriptReference(String)

Inicializa uma nova instância da classe ScriptReference usando um caminho especificado.

ScriptReference(String, String)

Inicializa uma nova instância da classe ScriptReference usando um nome e um assembly especificados.

Propriedades

Assembly

Obtém ou define o nome do assembly que contém o arquivo de script de cliente como um recurso inserido.

IgnoreScriptPath
Obsoleto.

Obtém ou define um valor que indica se a propriedade ScriptPath está incluída na URL ao registrar um arquivo de script de cliente de um recurso.

Name

Obtém ou define o nome do recurso inserido que contém o arquivo de script de cliente.

NotifyScriptLoaded
Obsoleto.

Obtém ou define um valor que indica se o objeto ScriptResourceHandler adiciona automaticamente o código no final do arquivo ECMAScript (JavaScript) para chamar o método NotifyScriptLoaded cliente da classe Sys.Application.

(Herdado de ScriptReferenceBase)
Path

Obtém ou define o caminho do arquivo de script de cliente referenciado, relativo à página da Web.

(Herdado de ScriptReferenceBase)
ResourceUICultures

Obtém ou define a lista delimitada por vírgulas das culturas de interface do usuário com suporte pela propriedade Path.

(Herdado de ScriptReferenceBase)
ScriptMode

Obtém ou define a versão do arquivo de script de cliente (versão ou depuração) a ser usado.

(Herdado de ScriptReferenceBase)

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetUrl(ScriptManager, Boolean)

Recupera a URL que é processada como o valor do atributo src do elemento script.

IsAjaxFrameworkScript(ScriptManager)

Determina se a referência de script é um script AJAX.

IsAjaxFrameworkScript(ScriptManager)

Determina se a referência de script especificada é um script AJAX do ASP.NET.

(Herdado de ScriptReferenceBase)
IsFromSystemWebExtensions()
Obsoleto.

Indica se o script de composição contém uma referência a um script de estrutura AJAX ASP.NET.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o valor da propriedade Name, a propriedade Path ou o nome do tipo.

Aplica-se a