ScriptReference Classe

Definição

Regista um ficheiro ECMAScript (JavaScript) para utilização numa 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
Herança
ScriptReference

Exemplos

O exemplo seguinte mostra como referenciar um controlo personalizado e um ficheiro JavaScript que está incorporado no assembly de controlo. Assume-se que a montagem está na pasta Bin do site. O controlo personalizado anima UpdatePanel os controlos. O ficheiro JavaScript é compilado como um recurso embutido que se chama SampleControl.UpdatePanelAnimation.js. Regista o ficheiro JavaScript embutido usando as Assembly propriedades e.Name

Para usar este exemplo, compila o ficheiro JavaScript mostrado no exemplo como um recurso incorporado com o controlo personalizado. Coloque a montagem resultante na pasta Bin do site. Para um exemplo de como incorporar um ficheiro JavaScript numa assembleia, veja Walkthrough: Incorporar um ficheiro JavaScript como recurso numa assembleia.

O exemplo seguinte mostra uma página que utiliza o controlo 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 seguinte mostra a definição personalizada da classe de controlo.

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 seguinte mostra o ficheiro JavaScript de 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 seguinte mostra código que deve adicionar ao ficheiro AssemblyInfo do projeto que contém o controlo personalizado e o ficheiro JavaScript.

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

Observações

Pode incluir um ficheiro JavaScript numa página Web ASP.NET registando-o através de um objeto ScriptReference. Pode registar um ficheiro de script localizado como um ficheiro .js (um ficheiro de script estático) no site. Também pode registar um ficheiro de script que está incorporado como recurso numa assembleia. Depois de registar o ficheiro de script, pode usar as suas funções no script cliente na página Web.

Para registar um ficheiro de script estático, defina a Path propriedade do ScriptReference objeto para a localização relativa do ficheiro.

Para registar um ficheiro de script que está embutido como recurso numa assembleia, defina a Assembly propriedade para o nome da assembly que contém o ficheiro. Depois define a Name propriedade para o nome do ficheiro .js que está embutido no assembly. Nesse caso, o ficheiro de script tem de ser incorporado, não ligado.

Defines a ScriptMode propriedade para indicar se deves usar a versão de depuração ou release do script.

O Auto valor produz resultados diferentes dependendo se se refere a um ficheiro de script autónomo ou a um ficheiro de script incorporado como recurso numa assembleia. Um ficheiro de script autónomo é definido com a Path propriedade. Uma referência de montagem deve ser acedida através das Name propriedades e.Assembly Os resultados para o Auto valor são os seguintes:

  • Quando é aplicado a um ficheiro de script autónomo onde a Path propriedade é especificada, o Auto valor é equivalente a Release.

  • Quando é aplicado a uma referência de script numa montagem, Auto é equivalente a Inherit. Quando apenas Name é especificado, é usado para referenciar o guião. Quando Name e a Path propriedade são ambas especificadas, a Path propriedade é usada em vez de Name, mas o Auto valor continua a ser equivalente a Inherit.

Construtores

Name Description
ScriptReference()

Inicializa uma nova instância da ScriptReference classe.

ScriptReference(String, String)

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

ScriptReference(String)

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

Propriedades

Name Description
Assembly

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

IgnoreScriptPath
Obsoleto.

Recebe ou define um valor que indica se a ScriptPath propriedade está incluída no URL quando regista um ficheiro de script cliente a partir de um recurso.

Name

Recebe ou define o nome do recurso embutido que contém o ficheiro de script cliente.

NotifyScriptLoaded
Obsoleto.

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

(Herdado de ScriptReferenceBase)
Path

Obtém ou define o caminho do ficheiro de script cliente referenciado, em relação à página Web.

(Herdado de ScriptReferenceBase)
ResourceUICultures

Obtém ou define uma lista delimitada por vírgulas de culturas UI suportadas pela Path propriedade.

(Herdado de ScriptReferenceBase)
ScriptMode

Obtém ou define a versão do ficheiro de script cliente (release ou debug) a usar.

(Herdado de ScriptReferenceBase)

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetUrl(ScriptManager, Boolean)

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

IsAjaxFrameworkScript(ScriptManager)

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

IsFromSystemWebExtensions()
Obsoleto.

Indica se o script composto contém uma referência a um script de framework ASP.NET AJAX.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o valor da Name propriedade, da Path propriedade ou do nome do tipo.

Aplica-se a