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) da usare 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 illustrato 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 di controllo personalizzata.
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 illustra 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);
}
}
L'esempio seguente mostra 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 (un 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 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 invece di Name, ma il Auto valore è comunque equivalente a Inherit.
Costruttori
| Nome | Descrizione |
|---|---|
| ScriptReference() |
Inizializza una nuova istanza della classe ScriptReference. |
| ScriptReference(String, String) |
Inizializza una nuova istanza della ScriptReference classe utilizzando un nome e un assembly specificati. |
| ScriptReference(String) |
Inizializza una nuova istanza della ScriptReference classe utilizzando un percorso specificato. |
Proprietà
| Nome | Descrizione |
|---|---|
| Assembly |
Ottiene o imposta il nome dell'assembly che contiene il file di script client come risorsa incorporata. |
| IgnoreScriptPath |
Obsoleti.
Ottiene o imposta un valore che indica se la ScriptPath proprietà è inclusa nell'URL quando si registra un file di script client da una risorsa. |
| Name |
Ottiene o imposta il nome della risorsa incorporata che contiene il file di 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 di script client di riferimento, relativo alla pagina Web. (Ereditato da ScriptReferenceBase) |
| ResourceUICultures |
Ottiene o imposta un elenco delimitato da virgole di impostazioni cultura dell'interfaccia Path utente supportate dalla proprietà . (Ereditato da ScriptReferenceBase) |
| ScriptMode |
Ottiene o imposta la versione del file di script client (versione o debug) da utilizzare. (Ereditato da ScriptReferenceBase) |
Metodi
| Nome | Descrizione |
|---|---|
| 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 il 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. |
| IsFromSystemWebExtensions() |
Obsoleti.
Indica se lo script composito contiene un riferimento a uno script del framework AJAX ASP.NET. |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta il valore della proprietà, della NamePath proprietà o del nome del tipo. |