ScriptReference Klass

Definition

Registrerar en ECMAScript-fil (JavaScript) för användning på en ASP.NET webbsida.

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
Arv
ScriptReference

Exempel

I följande exempel visas hur du refererar till en anpassad kontroll och en JavaScript-fil som är inbäddad i kontrollsammansättningen. Sammansättningen antas finnas i mappen Bin på webbplatsen. Den anpassade kontrollen animerar UpdatePanel kontroller. JavaScript-filen kompileras som en inbäddad resurs med namnet SampleControl.UpdatePanelAnimation.js. Du registrerar den inbäddade JavaScript-filen med hjälp Assembly av egenskaperna och Name .

Kompilera JavaScript-filen som visas i exemplet som en inbäddad resurs med den anpassade kontrollen om du vill använda det här exemplet. Placera den resulterande sammansättningen i mappen Bin på webbplatsen. Ett exempel på hur du bäddar in en JavaScript-fil i en sammansättning finns i Genomgång: Bädda in en JavaScript-fil som en resurs i en sammansättning.

I följande exempel visas en sida som använder den anpassade kontrollen.

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

I följande exempel visas definitionen för den anpassade kontrollklassen.

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

I följande exempel visas den JavaScript-fil som stöder.

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

I följande exempel visas kod som du måste lägga till i AssemblyInfo-filen för projektet som innehåller den anpassade kontrollen och JavaScript-filen.

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

Kommentarer

Du kan inkludera en JavaScript-fil på en ASP.NET webbsida genom att registrera den via ett ScriptReference-objekt. Du kan registrera en skriptfil som finns som en .js fil (en statisk skriptfil) på webbplatsen. Du kan också registrera en skriptfil som är inbäddad som en resurs i en sammansättning. När du har registrerat skriptfilen kan du använda dess funktioner i klientskriptet på webbsidan.

Om du vill registrera en statisk skriptfil anger du Path objektets ScriptReference egenskap till den relativa platsen för filen.

Om du vill registrera en skriptfil som är inbäddad som en resurs i en sammansättning anger du Assembly egenskapen till namnet på den sammansättning som innehåller filen. Ange Name sedan egenskapen till namnet på den .js fil som är inbäddad i sammansättningen. I så fall måste skriptfilen vara inbäddad, inte länkad.

Du anger ScriptMode egenskapen för att ange om du vill använda felsöknings- eller versionsversionen av skriptet.

Värdet Auto ger olika resultat beroende på om det refererar till en fristående skriptfil eller till en skriptfil som är inbäddad som en resurs i en sammansättning. En fristående skriptfil definieras med Path egenskapen . En sammansättningsreferens måste nås via Name egenskaperna och Assembly . Resultatet för Auto värdet är följande:

  • När den tillämpas på en fristående skriptfil där Path egenskapen har angetts Auto motsvarar Releasevärdet .

  • När den tillämpas på en skriptreferens i en sammansättning Auto motsvarar Inheritden . När endast Name anges används det för att referera till skriptet. När Name och egenskapen Path båda anges Path används egenskapen i stället för Name, men Auto värdet motsvarar Inheritfortfarande .

Konstruktorer

Name Description
ScriptReference()

Initierar en ny instans av ScriptReference klassen.

ScriptReference(String, String)

Initierar en ny instans av ScriptReference klassen med hjälp av ett angivet namn och en angiven sammansättning.

ScriptReference(String)

Initierar en ny instans av ScriptReference klassen med hjälp av en angiven sökväg.

Egenskaper

Name Description
Assembly

Hämtar eller anger namnet på sammansättningen som innehåller klientskriptfilen som en inbäddad resurs.

IgnoreScriptPath
Föråldrad.

Hämtar eller anger ett värde som anger om ScriptPath egenskapen ingår i URL:en när du registrerar en klientskriptfil från en resurs.

Name

Hämtar eller anger namnet på den inbäddade resurs som innehåller klientskriptfilen.

NotifyScriptLoaded
Föråldrad.

Hämtar eller anger ett värde som anger om ScriptResourceHandler objektet automatiskt lägger till kod i slutet av FILEN ECMAScript (JavaScript) för att anropa klientmetoden NotifyScriptLoaded för klassen Sys.Application .

(Ärvd från ScriptReferenceBase)
Path

Hämtar eller anger sökvägen till den refererade klientskriptfilen i förhållande till webbsidan.

(Ärvd från ScriptReferenceBase)
ResourceUICultures

Hämtar eller anger en kommaavgränsad lista över användargränssnittskulturer som stöds av egenskapen Path .

(Ärvd från ScriptReferenceBase)
ScriptMode

Hämtar eller anger vilken version av klientskriptfilen (version eller felsökning) som ska användas.

(Ärvd från ScriptReferenceBase)

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
GetUrl(ScriptManager, Boolean)

Hämtar url:en som återges som värdet för src elementets script attribut.

IsAjaxFrameworkScript(ScriptManager)

Avgör om skriptreferensen är ett AJAX-skript.

IsFromSystemWebExtensions()
Föråldrad.

Anger om det sammansatta skriptet innehåller en referens till ett ASP.NET AJAX-ramverksskript.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar värdet för Name egenskapen, Path egenskapen eller typnamnet.

Gäller för