Condividi tramite


ScriptReference Classe

Definizione

Registra un file ECMAScript (JavaScript) da usare 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 illustrato 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 di controllo personalizzata.

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

L'esempio seguente mostra 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 (un 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 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 invece di Name, ma il Auto valore è comunque equivalente a Inherit.

Costruttori

Nome Descrizione
ScriptReference()

Inizializza una nuova istanza della classe ScriptReference.

ScriptReference(String, String)

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

ScriptReference(String)

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

Proprietà

Nome Descrizione
Assembly

Ottiene o imposta il nome dell'assembly che contiene il file di script client come risorsa incorporata.

IgnoreScriptPath
Obsoleti.

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

Name

Ottiene o imposta il nome della risorsa incorporata che contiene il file di 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 di script client di riferimento, relativo alla pagina Web.

(Ereditato da ScriptReferenceBase)
ResourceUICultures

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

(Ereditato da ScriptReferenceBase)
ScriptMode

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

(Ereditato da ScriptReferenceBase)

Metodi

Nome Descrizione
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 il 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.

IsFromSystemWebExtensions()
Obsoleti.

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

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

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

Si applica a