ScriptReference Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Registriert eine ECMAScript-Datei (JavaScript) für die Verwendung auf einer ASP.NET Webseite.
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
- Vererbung
Beispiele
Das folgende Beispiel zeigt, wie Sie auf ein benutzerdefiniertes Steuerelement und eine JavaScript-Datei verweisen, die in die Steuerelementassembly eingebettet ist. Die Assembly wird angenommen, dass sie sich im Ordner "Bin" der Website befindet. Das benutzerdefinierte Steuerelement animiert UpdatePanel Steuerelemente. Die JavaScript-Datei wird als eingebettete Ressource kompiliert, die SampleControl.UpdatePanelAnimation.jsheißt. Sie registrieren die eingebettete JavaScript-Datei mithilfe der und Name der Assembly Eigenschaften.
Um dieses Beispiel zu verwenden, kompilieren Sie die Im Beispiel gezeigte JavaScript-Datei als eingebettete Ressource mit dem benutzerdefinierten Steuerelement. Fügen Sie die resultierende Assembly in den Ordner "Bin" der Website ein. Ein Beispiel zum Einbetten einer JavaScript-Datei in eine Assembly finden Sie unter Walkthrough: Embedding a JavaScript File as a Resource in an Assembly.
Das folgende Beispiel zeigt eine Seite, die das benutzerdefinierte Steuerelement verwendet.
<%@ 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>
Das folgende Beispiel zeigt die Definition der benutzerdefinierten Steuerelementklasse.
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
Das folgende Beispiel zeigt die unterstützende JavaScript-Datei.
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);
}
}
Das folgende Beispiel zeigt Code, den Sie der AssemblyInfo-Datei des Projekts hinzufügen müssen, die das benutzerdefinierte Steuerelement und die JavaScript-Datei enthält.
[assembly: System.Web.UI.WebResource("SampleControl.UpdatePanelAnimation.js", "application/x-javascript")]
<Assembly: System.Web.UI.WebResource("SampleControl.UpdatePanelAnimation.js", "application/x-javascript")>
Hinweise
Sie können eine JavaScript-Datei auf einer ASP.NET Webseite einschließen, indem Sie sie über ein ScriptReference Objekt registrieren. Sie können eine Skriptdatei registrieren, die sich als .js Datei (statische Skriptdatei) auf der Website befindet. Sie können auch eine Skriptdatei registrieren, die als Ressource in einer Assembly eingebettet ist. Nachdem Sie die Skriptdatei registriert haben, können Sie deren Funktionen im Clientskript auf der Webseite verwenden.
Um eine statische Skriptdatei zu registrieren, legen Sie die Path Eigenschaft des ScriptReference Objekts auf den relativen Speicherort der Datei fest.
Wenn Sie eine Skriptdatei registrieren möchten, die als Ressource in einer Assembly eingebettet ist, legen Sie die Assembly Eigenschaft auf den Namen der Assembly fest, die die Datei enthält. Legen Sie dann die Name Eigenschaft auf den Namen der .js-Datei fest, die in die Assembly eingebettet ist. In diesem Fall muss die Skriptdatei eingebettet sein, nicht verknüpft.
Sie legen die ScriptMode Eigenschaft fest, um anzugeben, ob die Debug- oder Releaseversion des Skripts verwendet werden soll.
Der Auto Wert erzeugt unterschiedliche Ergebnisse, je nachdem, ob er sich auf eine eigenständige Skriptdatei oder auf eine Skriptdatei bezieht, die als Ressource in einer Assembly eingebettet ist. Eine eigenständige Skriptdatei wird mit der Path Eigenschaft definiert. Auf einen Assemblyverweis muss über die und Assembly die Name Eigenschaften zugegriffen werden. Die Ergebnisse für den Auto Wert sind wie folgt:
Wenn sie auf eine eigenständige Skriptdatei angewendet wird, in der die Path Eigenschaft angegeben wird, entspricht Releaseder Auto Wert .
Wenn es auf einen Skriptverweis in einer Assembly angewendet wird, Auto entspricht es Inherit. Wenn nur Name angegeben wird, wird es verwendet, um auf das Skript zu verweisen. Wenn Name und die Path Eigenschaft beide angegeben werden, wird die Path Eigenschaft anstelle von Name, aber der Auto Wert ist immer noch gleichwertig mit Inherit.
Konstruktoren
| Name | Beschreibung |
|---|---|
| ScriptReference() |
Initialisiert eine neue Instanz der ScriptReference-Klasse. |
| ScriptReference(String, String) |
Initialisiert eine neue Instanz der ScriptReference Klasse mithilfe eines angegebenen Namens und einer assembly. |
| ScriptReference(String) |
Initialisiert eine neue Instanz der ScriptReference Klasse mithilfe eines angegebenen Pfads. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Assembly |
Dient zum Abrufen oder Festlegen des Namens der Assembly, die die Clientskriptdatei als eingebettete Ressource enthält. |
| IgnoreScriptPath |
Veraltet.
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die ScriptPath Eigenschaft in der URL enthalten ist, wenn Sie eine Clientskriptdatei aus einer Ressource registrieren. |
| Name |
Dient zum Abrufen oder Festlegen des Namens der eingebetteten Ressource, die die Clientskriptdatei enthält. |
| NotifyScriptLoaded |
Veraltet.
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob das ScriptResourceHandler Objekt automatisch Code am Ende der ECMAScript (JavaScript)-Datei hinzufügt, um die Clientmethode NotifyScriptLoaded der Sys.Application-Klasse aufzurufen. (Geerbt von ScriptReferenceBase) |
| Path |
Ruft den Pfad der referenzierten Clientskriptdatei relativ zur Webseite ab oder legt diesen fest. (Geerbt von ScriptReferenceBase) |
| ResourceUICultures |
Ruft eine durch Trennzeichen getrennte Liste der Benutzeroberflächenkulturen ab, die von der Path Eigenschaft unterstützt werden, oder legt diese fest. (Geerbt von ScriptReferenceBase) |
| ScriptMode |
Ruft die Version der zu verwendenden Clientskriptdatei (Release oder Debug) ab oder legt sie fest. (Geerbt von ScriptReferenceBase) |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| GetUrl(ScriptManager, Boolean) |
Ruft die URL ab, die als Wert des |
| IsAjaxFrameworkScript(ScriptManager) |
Bestimmt, ob es sich bei dem Skriptverweis um ein AJAX-Skript handelt. |
| IsFromSystemWebExtensions() |
Veraltet.
Gibt an, ob das zusammengesetzte Skript einen Verweis auf ein ASP.NET AJAX-Frameworkskript enthält. |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die den Wert der Name Eigenschaft, der Path Eigenschaft oder des Typnamens darstellt. |