Partager via


ScriptReference Classe

Définition

Inscrit un fichier ECMAScript (JavaScript) à utiliser 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 propriétés et Name des Assembly propriétés.

Pour utiliser cet exemple, compilez le fichier JavaScript illustré 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 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 situé 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 propriétés et Assembly les Name propriétés. 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’elle est appliquée à une référence de script dans un assembly, Auto équivaut à Inherit. Lorsqu’il est spécifié uniquement Name , il est utilisé pour référencer le script. Quand Name et la Path propriété sont spécifiées, la Path propriété est utilisée au lieu de Name, mais la Auto valeur est toujours équivalente à Inherit.

Constructeurs

Nom Description
ScriptReference()

Initialise une nouvelle instance de la classe ScriptReference.

ScriptReference(String, String)

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

ScriptReference(String)

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

Propriétés

Nom Description
Assembly

Obtient ou définit le nom de l’assembly qui contient le fichier de script client en tant que ressource incorporée.

IgnoreScriptPath
Obsolète.

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

Name

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

NotifyScriptLoaded
Obsolète.

Obtient ou définit une valeur qui indique si l’objet ScriptResourceHandler ajoute automatiquement du code à la fin du fichier ECMAScript (JavaScript) pour appeler la méthode cliente NotifyScriptLoaded 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 de cultures d’interface utilisateur prises en charge par la Path propriété.

(Hérité de ScriptReferenceBase)
ScriptMode

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

(Hérité de ScriptReferenceBase)

Méthodes

Nom Description
Equals(Object)

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

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

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

Récupère l’URL affichée comme 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.

IsFromSystemWebExtensions()
Obsolète.

Indique si le script composite contient une référence à un script d’infrastructure AJAX ASP.NET.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente la valeur de la propriété, de la NamePath propriété ou du nom de type.

S’applique à