ScriptReference Classe

Définition

Inscrit un fichier ECMAScript (JavaScript) pour une utilisation sur une page 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
Héritage
ScriptReference

Exemples

L’exemple suivant montre comment référencer un contrôle personnalisé et un fichier JavaScript incorporé dans l’assembly de contrôle. L’assembly est supposé se trouver dans le dossier Bin du site Web. Le contrôle personnalisé anime les UpdatePanel contrôles. Le fichier JavaScript est compilé en tant que ressource incorporée nommée SampleControl.UpdatePanelAnimation.js. Vous inscrivez le fichier JavaScript incorporé à l’aide des Assembly propriétés et Name .

Pour utiliser cet exemple, compilez le fichier JavaScript présenté dans l’exemple en tant que ressource incorporée avec le contrôle personnalisé. Placez l’assembly résultant dans le dossier Bin du site Web. Pour obtenir un exemple d’incorporation d’un fichier JavaScript dans un assembly, consultez Procédure pas à pas : Incorporation d’un fichier JavaScript en tant que ressource dans un assembly.

L’exemple suivant montre une page qui utilise le contrôle personnalisé.

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

L’exemple suivant montre la définition de la classe de contrôle personnalisée.

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’exemple suivant montre le fichier JavaScript de prise en charge.

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’exemple suivant montre le code que vous devez ajouter au fichier AssemblyInfo du projet qui contient le contrôle personnalisé et le fichier JavaScript.

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

Remarques

Vous pouvez inclure un fichier JavaScript sur une page web ASP.NET en l’inscrivant via un ScriptReference objet . Vous pouvez inscrire un fichier de script qui se trouve sous la forme d’un fichier .js (fichier de script statique) sur le site Web. Vous pouvez également inscrire un fichier de script incorporé en tant que ressource dans un assembly. Après avoir inscrit le fichier de script, vous pouvez utiliser ses fonctions dans le script client sur la page Web.

Pour inscrire un fichier de script statique, définissez la Path propriété de l’objet ScriptReference sur l’emplacement relatif du fichier.

Pour inscrire un fichier de script incorporé en tant que ressource dans un assembly, définissez la Assembly propriété sur le nom de l’assembly qui contient le fichier. Définissez ensuite la Name propriété sur le nom du fichier .js incorporé dans l’assembly. Dans ce cas, le fichier de script doit être incorporé et non lié.

Vous définissez la ScriptMode propriété pour indiquer s’il faut utiliser la version de débogage ou de mise en production du script.

La Auto valeur produit des résultats différents selon qu’elle fait référence à un fichier de script autonome ou à un fichier de script incorporé en tant que ressource dans un assembly. Un fichier de script autonome est défini avec la Path propriété . Une référence d’assembly doit être accessible via les Name propriétés et Assembly . Les résultats de la Auto valeur sont les suivants :

  • Lorsqu’elle est appliquée à un fichier de script autonome où la Path propriété est spécifiée, la Auto valeur est équivalente à Release.

  • Lorsqu’il est appliqué à une référence de script dans un assembly, Auto équivaut à Inherit. Quand seul Name est spécifié, il est utilisé pour référencer le script. Lorsque Name et la Path propriété sont tous deux spécifiés, la Path propriété est utilisée à la place de Name, mais la Auto valeur est toujours équivalente à Inherit.

Constructeurs

ScriptReference()

Initialise une nouvelle instance de la classe ScriptReference.

ScriptReference(String)

Initialise une nouvelle instance de la classe ScriptReference à l'aide d'un chemin d'accès spécifié.

ScriptReference(String, String)

Initialise une nouvelle instance de la classe ScriptReference à l'aide d'un nom et d'un assembly spécifiés.

Propriétés

Assembly

Obtient ou définit le nom de l'assembly contenant le fichier de script client comme ressource incorporée.

IgnoreScriptPath
Obsolète.

Obtient ou définit une valeur qui indique si la propriété ScriptPath est incluse dans l'URL lorsque vous inscrivez un fichier de script client d'une ressource.

Name

Obtient ou définit le nom de la ressource incorporée contenant le fichier de script client.

NotifyScriptLoaded
Obsolète.

Obtient ou définit une valeur qui indique si l’objet ScriptResourceHandler ajoute automatiquement le code à la fin du fichier ECMAScript (JavaScript) pour appeler la méthode NotifyScriptLoaded du client de la classe Sys.Application.

(Hérité de ScriptReferenceBase)
Path

Obtient ou définit le chemin d'accès du fichier de script client référencé, par rapport à la page Web.

(Hérité de ScriptReferenceBase)
ResourceUICultures

Obtient ou définit une liste délimitée par des virgules des cultures d'interface utilisateur prises en charge par la propriété Path.

(Hérité de ScriptReferenceBase)
ScriptMode

Obtient ou définit la version du fichier de script client (release ou debug) à utiliser.

(Hérité de ScriptReferenceBase)

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
GetUrl(ScriptManager, Boolean)

Récupère l'URL rendue en tant que valeur de l'attribut src de l'élément script.

IsAjaxFrameworkScript(ScriptManager)

Détermine si la référence de script est un script AJAX.

IsAjaxFrameworkScript(ScriptManager)

Détermine si la référence de script spécifiée est un script ASP.NET AJAX.

(Hérité de ScriptReferenceBase)
IsFromSystemWebExtensions()
Obsolète.

Indique si le script composite contient une référence au script d'infrastructure ASP.NET AJAX.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente la valeur de la propriété Name, la propriété Path ou le nom de type.

S’applique à