ScriptReference Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Registra un file ECMAScript (JavaScript) per l'utilizzo 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à
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 visualizzato 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 del controllo personalizzato.
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 mostra 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);
}
}
Nell'esempio seguente viene illustrato 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 (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 allo 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 anziché Name, ma il Auto valore è ancora equivalente a Inherit.
Costruttori
ScriptReference() |
Inizializza una nuova istanza della classe ScriptReference. |
ScriptReference(String) |
Inizializza una nuova istanza della classe ScriptReference utilizzando un percorso specifico. |
ScriptReference(String, String) |
Inizializza una nuova istanza della classe ScriptReference utilizzando un nome e un assembly specifici. |
Proprietà
Assembly |
Ottiene o imposta il nome dell'assembly contenente il file script client come risorsa incorporata. |
IgnoreScriptPath |
Obsoleti.
Ottiene o imposta un valore che indica se la proprietà ScriptPath è inclusa nell'URL quando si registra un file script client da una risorsa. |
Name |
Ottiene o imposta il nome della risorsa incorporata contenente il file 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 script client a cui si fa riferimento, relativo alla pagina Web. (Ereditato da ScriptReferenceBase) |
ResourceUICultures |
Ottiene o imposta un elenco delimitato da virgole delle impostazioni cultura dell'interfaccia utente supportate dalla proprietà Path. (Ereditato da ScriptReferenceBase) |
ScriptMode |
Ottiene o imposta la versione (finale o di debug) del file script client da utilizzare. (Ereditato da ScriptReferenceBase) |
Metodi
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 l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
GetUrl(ScriptManager, Boolean) |
Recupera l'URL di cui viene eseguito il rendering come valore dell'attributo |
IsAjaxFrameworkScript(ScriptManager) |
Determina se il riferimento allo script è uno script AJAX. |
IsAjaxFrameworkScript(ScriptManager) |
Determina se il riferimento allo script specificato è uno script ASP.NET AJAX. (Ereditato da ScriptReferenceBase) |
IsFromSystemWebExtensions() |
Obsoleti.
Indica se lo script composito contiene un riferimento a uno script del framework ASP.NET AJAX. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta il valore della proprietà Name, della proprietà Path o il nome del tipo. |