ScriptReference Klas

Definitie

Registreert een ECMAScript-bestand (JavaScript) voor gebruik op een ASP.NET webpagina.

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

Voorbeelden

In het volgende voorbeeld ziet u hoe u verwijst naar een aangepast besturingselement en een JavaScript-bestand dat is ingesloten in de besturingsassembly. De assembly wordt ervan uitgegaan dat deze zich in de map Bin van de website bevindt. Het aangepaste besturingselement animeert UpdatePanel besturingselementen. Het JavaScript-bestand wordt gecompileerd als een ingesloten resource met de naam SampleControl.UpdatePanelAnimation.js. U registreert het ingesloten JavaScript-bestand met behulp van de Assembly en Name eigenschappen.

Als u dit voorbeeld wilt gebruiken, compileert u het JavaScript-bestand dat in het voorbeeld wordt weergegeven als een ingesloten resource met het aangepaste besturingselement. Plaats de resulterende assembly in de map Bin van de website. Zie Overzicht: Een JavaScript-bestand insluiten als een resource in een assembly voor een voorbeeld van het insluiten van een JavaScript-bestand in een assembly.

In het volgende voorbeeld ziet u een pagina die gebruikmaakt van het aangepaste besturingselement.

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

In het volgende voorbeeld ziet u de definitie van de aangepaste besturingsklasse.

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

In het volgende voorbeeld ziet u het ondersteunende JavaScript-bestand.

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

In het volgende voorbeeld ziet u code die u moet toevoegen aan het AssemblyInfo-bestand van het project dat het aangepaste besturingselement en het JavaScript-bestand bevat.

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

Opmerkingen

U kunt een JavaScript-bestand opnemen op een ASP.NET webpagina door het te registreren via een ScriptReference-object. U kunt een scriptbestand registreren dat zich bevindt als een .js-bestand (een statisch scriptbestand) op de website. U kunt ook een scriptbestand registreren dat is ingesloten als een resource in een assembly. Nadat u het scriptbestand hebt geregistreerd, kunt u de functies ervan gebruiken in het clientscript op de webpagina.

Als u een statisch scriptbestand wilt registreren, stelt u de Path eigenschap van het ScriptReference object in op de relatieve locatie van het bestand.

Als u een scriptbestand wilt registreren dat is ingesloten als een resource in een assembly, stelt u de Assembly eigenschap in op de naam van de assembly die het bestand bevat. Stel vervolgens de Name eigenschap in op de naam van het .js-bestand dat is ingesloten in de assembly. In dat geval moet het scriptbestand worden ingesloten, niet gekoppeld.

U stelt de ScriptMode eigenschap in om aan te geven of de foutopsporing of releaseversie van het script moet worden gebruikt.

De Auto waarde produceert verschillende resultaten, afhankelijk van of deze verwijst naar een zelfstandig scriptbestand of naar een scriptbestand dat is ingesloten als een resource in een assembly. Er wordt een zelfstandig scriptbestand gedefinieerd met de Path eigenschap. Een assembly-verwijzing moet worden geopend via de Name en Assembly eigenschappen. De resultaten voor de Auto waarde zijn als volgt:

  • Wanneer deze wordt toegepast op een zelfstandig scriptbestand waarin de Path eigenschap is opgegeven, is de Auto waarde gelijk aan Release.

  • Wanneer deze wordt toegepast op een scriptreferentie in een assembly, Auto is dit gelijk aan Inherit. Wanneer alleen Name wordt opgegeven, wordt deze gebruikt om te verwijzen naar het script. Wanneer Name en de Path eigenschap beide zijn opgegeven, wordt de Path eigenschap gebruikt in plaats van Name, maar de Auto waarde is nog steeds gelijk aan Inherit.

Constructors

Name Description
ScriptReference()

Initialiseert een nieuw exemplaar van de ScriptReference klasse.

ScriptReference(String, String)

Initialiseert een nieuw exemplaar van de ScriptReference klasse met behulp van een opgegeven naam en assembly.

ScriptReference(String)

Initialiseert een nieuw exemplaar van de ScriptReference klasse met behulp van een opgegeven pad.

Eigenschappen

Name Description
Assembly

Hiermee haalt u de naam op van de assembly die het clientscriptbestand bevat als een ingesloten resource.

IgnoreScriptPath
Verouderd.

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de ScriptPath eigenschap is opgenomen in de URL wanneer u een clientscriptbestand van een resource registreert.

Name

Hiermee haalt u de naam op van de ingesloten resource die het clientscriptbestand bevat of stelt u deze in.

NotifyScriptLoaded
Verouderd.

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het ScriptResourceHandler object automatisch code toevoegt aan het einde van het BESTAND ECMAScript (JavaScript) om de clientmethode NotifyScriptLoaded van de klasse Sys.Application aan te roepen.

(Overgenomen van ScriptReferenceBase)
Path

Hiermee wordt het pad van het clientscriptbestand waarnaar wordt verwezen, opgehaald of ingesteld ten opzichte van de webpagina.

(Overgenomen van ScriptReferenceBase)
ResourceUICultures

Hiermee haalt u een door komma's gescheiden lijst met gebruikersinterfaceculturen op die worden ondersteund door de Path eigenschap.

(Overgenomen van ScriptReferenceBase)
ScriptMode

Hiermee haalt u de versie van het clientscriptbestand (release of foutopsporing) op of stelt u deze in voor gebruik.

(Overgenomen van ScriptReferenceBase)

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
GetUrl(ScriptManager, Boolean)

Haalt de URL op die wordt weergegeven als de waarde van het src kenmerk van het script element.

IsAjaxFrameworkScript(ScriptManager)

Bepaalt of de scriptreferentie een AJAX-script is.

IsFromSystemWebExtensions()
Verouderd.

Geeft aan of het samengestelde script een verwijzing naar een ASP.NET AJAX-frameworkscript bevat.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die de waarde van de Name eigenschap, de Path eigenschap of de typenaam vertegenwoordigt.

Van toepassing op