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
Im folgenden Beispiel wird gezeigt, wie sie auf ein benutzerdefiniertes Steuerelement und eine JavaScript-Datei verweisen, die in die Steuerelementassembly eingebettet ist. Die Assembly wird angenommen, dass sie im Ordner "Bin" der Website enthalten ist. Das benutzerdefinierte Steuerelement animiert UpdatePanel Steuerelemente. Die JavaScript-Datei wird als eingebettete Ressource kompiliert, die SampleControl.UpdatePanelAnimation.js benannt wird. Sie registrieren die eingebettete JavaScript-Datei mithilfe der Assembly eigenschaften Name .
Um dieses Beispiel zu verwenden, kompilieren Sie die JavaScript-Datei, die im Beispiel als eingebettete Ressource mit dem benutzerdefinierten Steuerelement angezeigt wird. 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 Exemplarische Vorgehensweise: Einbetten einer JavaScript-Datei als Ressource in einer 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>
Im folgenden Beispiel wird die benutzerdefinierte Steuerelementklassendefinition dargestellt.
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
Im folgenden Beispiel wird die unterstützte JavaScript-Datei dargestellt.
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);
}
}
Im folgenden Beispiel wird Code gezeigt, den Sie der AssemblyInfo-Datei des Projekts hinzufügen müssen, das 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 (eine statische Skriptdatei) auf der Website befindet. Sie können auch eine Skriptdatei registrieren, die als Ressource in eine Assembly eingebettet ist. Nachdem Sie die Skriptdatei registriert haben, können Sie die 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.
Um eine Skriptdatei zu registrieren, die als Ressource in eine 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 werden, 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 es sich auf eine eigenständige Skriptdatei oder auf eine Skriptdatei bezieht, die als Ressource in eine Assembly eingebettet ist. Eine eigenständige Skriptdatei wird mit der Path Eigenschaft definiert. Auf einen Assemblyverweis muss über die Name Eigenschaften Assembly 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 Inherites . Wenn nur Name angegeben wird, wird es verwendet, um auf das Skript zu verweisen. Wenn Name und die Path Eigenschaft beide angegeben werden, wird Namedie Path Eigenschaft anstelle von , aber der Auto Wert entspricht noch Inherit.
Konstruktoren
ScriptReference() |
Initialisiert eine neue Instanz der ScriptReference-Klasse. |
ScriptReference(String) |
Initialisiert unter Verwendung eines angegebenen Pfads eine neue Instanz der ScriptReference-Klasse. |
ScriptReference(String, String) |
Initialisiert unter Verwendung eines angegebenen Namens und einer angegebenen Assembly eine neue Instanz der ScriptReference-Klasse. |
Eigenschaften
Assembly |
Ruft den Namen der Assembly ab, die die Clientskriptdatei als eingebettete Ressource enthält, oder legt diesen fest. |
IgnoreScriptPath |
Veraltet.
Ruft beim Registrieren einer Clientskriptdatei von einer Ressource einen Wert ab, der angibt, ob in der URL die ScriptPath-Eigenschaft enthalten ist, oder legt diesen fest. |
Name |
Ruft den Namen der eingebetteten Ressource mit der Clientskriptdatei ab oder legt diesen fest. |
NotifyScriptLoaded |
Veraltet.
Ruft einen Wert ab, der angibt, ob das ScriptResourceHandler-Objekt automatisch Code am Ende der ECMAScript-Datei (JavaScript) zum Aufrufen der Client-NotifyScriptLoaded-Methode der Sys.Application-Klasse anfügt, oder legt ihn fest. (Geerbt von ScriptReferenceBase) |
Path |
Ruft relativ zur Webseite den Pfad der Clientskriptdatei ab, auf die verwiesen wird, oder legt diesen fest. (Geerbt von ScriptReferenceBase) |
ResourceUICultures |
Ruft eine durch Kommas getrennte Liste mit von der Path-Eigenschaft unterstützten UI-Kulturen ab oder legt diese fest. (Geerbt von ScriptReferenceBase) |
ScriptMode |
Ruft die Version der zu verwendenden Clientskriptdatei (Release- oder Debugversion) ab oder legt diese fest. (Geerbt von ScriptReferenceBase) |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
GetUrl(ScriptManager, Boolean) |
Ruft die URL zurück, die als Wert für das |
IsAjaxFrameworkScript(ScriptManager) |
Bestimmt, ob der Skriptverweis ein AJAX-Skript ist. |
IsAjaxFrameworkScript(ScriptManager) |
Bestimmt, ob der angegebene Skriptverweis ein ASP.NET AJAX-Skript ist. (Geerbt von ScriptReferenceBase) |
IsFromSystemWebExtensions() |
Veraltet.
Gibt an, ob das zusammengesetzte Skript einen Verweis auf ein ASP.NET-AJAX-Frameworkskript enthält |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die den Wert der Name-Eigenschaft, der Path-Eigenschaft oder den Typnamen darstellt. |