ScriptReference Classe

Definizione

Registra un file ECMAScript (JavaScript) per l'utilizzo in una pagina 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
Ereditarietà
ScriptReference

Esempio

Nell'esempio seguente viene illustrato come fare riferimento a un controllo personalizzato e a un file JavaScript incorporato nell'assembly del controllo. Si presuppone che l'assembly si trova nella cartella Bin del sito Web. Il controllo personalizzato anima i UpdatePanel controlli. Il file JavaScript viene compilato come risorsa incorporata denominata SampleControl.UpdatePanelAnimation.js. Per registrare il file JavaScript incorporato, usare le Assembly proprietà e Name .

Per usare questo esempio, compilare il file JavaScript visualizzato nell'esempio come risorsa incorporata con il controllo personalizzato. Inserire l'assembly risultante nella cartella Bin del sito Web. Per un esempio di come incorporare un file JavaScript in un assembly, vedere Procedura dettagliata: Incorporamento di un file JavaScript come risorsa in un assembly.

Nell'esempio seguente viene illustrata una pagina che usa il controllo personalizzato.

<%@ 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>

Nell'esempio seguente viene illustrata la definizione della classe del controllo personalizzato.

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

L'esempio seguente mostra il file JavaScript di supporto.

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

Nell'esempio seguente viene illustrato il codice che è necessario aggiungere al file AssemblyInfo del progetto che contiene il controllo personalizzato e il file JavaScript.

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

Commenti

È possibile includere un file JavaScript in una pagina Web ASP.NET registrandolo tramite un ScriptReference oggetto . È possibile registrare un file di script che si trova come file di .js (file di script statico) nel sito Web. È anche possibile registrare un file di script incorporato come risorsa in un assembly. Dopo aver registrato il file di script, è possibile usare le relative funzioni nello script client nella pagina Web.

Per registrare un file di script statico, impostare la Path proprietà dell'oggetto ScriptReference sul percorso relativo del file.

Per registrare un file di script incorporato come risorsa in un assembly, impostare la Assembly proprietà sul nome dell'assembly che contiene il file. Impostare quindi la Name proprietà sul nome del file .js incorporato nell'assembly. In tal caso, il file di script deve essere incorporato, non collegato.

Impostare la ScriptMode proprietà per indicare se usare la versione di debug o di rilascio dello script.

Il Auto valore produce risultati diversi a seconda che faccia riferimento a un file di script autonomo o a un file di script incorporato come risorsa in un assembly. Un file di script autonomo viene definito con la Path proprietà . È necessario accedere a un riferimento all'assembly tramite le Name proprietà e Assembly . I risultati per il Auto valore sono i seguenti:

  • Quando viene applicato a un file di script autonomo in cui viene specificata la Path proprietà, il Auto valore equivale a Release.

  • Quando viene applicato a un riferimento allo script in un assembly, Auto equivale a Inherit. Quando viene specificato solo Name , viene usato per fare riferimento allo script. Quando Name e la Path proprietà sono entrambe specificate, la Path proprietà viene usata anziché Name, ma il Auto valore è ancora equivalente a Inherit.

Costruttori

ScriptReference()

Inizializza una nuova istanza della classe ScriptReference.

ScriptReference(String)

Inizializza una nuova istanza della classe ScriptReference utilizzando un percorso specifico.

ScriptReference(String, String)

Inizializza una nuova istanza della classe ScriptReference utilizzando un nome e un assembly specifici.

Proprietà

Assembly

Ottiene o imposta il nome dell'assembly contenente il file script client come risorsa incorporata.

IgnoreScriptPath
Obsoleti.

Ottiene o imposta un valore che indica se la proprietà ScriptPath è inclusa nell'URL quando si registra un file script client da una risorsa.

Name

Ottiene o imposta il nome della risorsa incorporata contenente il file script client.

NotifyScriptLoaded
Obsoleti.

Ottiene o imposta un valore che indica se l'oggetto ScriptResourceHandler aggiunge automaticamente codice alla fine del file ECMAScript (JavaScript) per chiamare il metodo client NotifyScriptLoaded della classe Sys.Application.

(Ereditato da ScriptReferenceBase)
Path

Ottiene o imposta il percorso del file script client a cui si fa riferimento, relativo alla pagina Web.

(Ereditato da ScriptReferenceBase)
ResourceUICultures

Ottiene o imposta un elenco delimitato da virgole delle impostazioni cultura dell'interfaccia utente supportate dalla proprietà Path.

(Ereditato da ScriptReferenceBase)
ScriptMode

Ottiene o imposta la versione (finale o di debug) del file script client da utilizzare.

(Ereditato da ScriptReferenceBase)

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
GetUrl(ScriptManager, Boolean)

Recupera l'URL di cui viene eseguito il rendering come valore dell'attributo src dell'elemento script.

IsAjaxFrameworkScript(ScriptManager)

Determina se il riferimento allo script è uno script AJAX.

IsAjaxFrameworkScript(ScriptManager)

Determina se il riferimento allo script specificato è uno script ASP.NET AJAX.

(Ereditato da ScriptReferenceBase)
IsFromSystemWebExtensions()
Obsoleti.

Indica se lo script composito contiene un riferimento a uno script del framework ASP.NET AJAX.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta il valore della proprietà Name, della proprietà Path o il nome del tipo.

Si applica a