Aggiornamento: novembre 2007
Definisce i metodi per la gestione di script client nelle applicazioni Web.
Spazio dei nomi:
System.Web.UI Assembly:
System.Web (in System.Web.dll)
Visual Basic - (Dichiarazione)
<AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
Public NotInheritable Class ClientScriptManager
Dim instance As ClientScriptManager
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public sealed class ClientScriptManager
[AspNetHostingPermissionAttribute(SecurityAction::LinkDemand, Level = AspNetHostingPermissionLevel::Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction::InheritanceDemand, Level = AspNetHostingPermissionLevel::Minimal)]
public ref class ClientScriptManager sealed
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public final class ClientScriptManager
public final class ClientScriptManager
La classe ClientScriptManager consente di gestire script client e aggiungerli ad applicazioni Web. È possibile ottenere un riferimento alla classe ClientScriptManager dalla proprietà ClientScript dell'oggetto Page.
È possibile aggiungere uno script client a una pagina Web in modo dichiarativo, includendo lo script nel markup HTML della pagina. In alcune situazioni è tuttavia necessario aggiungere in modo dinamico lo script client. Per eseguire tale operazione, utilizzare il metodo RegisterClientScriptBlock, il metodo RegisterClientScriptInclude, il metodo RegisterStartupScript oppure il metodo RegisterOnSubmitStatement, in base al momento e al modo in cui si desidera aggiungere lo script. Per ulteriori informazioni, vedere Procedura: aggiungere dinamicamente script client alle pagine Web ASP.NET.
La classe ClientScriptManager identifica in modo univoco gli script tramite una chiave String e un tipo Type. Gli script con la stessa chiave e lo stesso tipo sono considerati duplicati. L'utilizzo del tipo dello script contribuisce a evitare la confusione tra tipi simili di script associati a diversi controlli utente eventualmente in uso nella pagina.
È possibile utilizzare la classe ClientScriptManager per richiamare i callback client nei casi in cui risulta preferibile eseguire codice server dal client senza eseguire un postback. Tale procedura viene definita esecuzione di un callback fuori banda al server. In un callback client una funzione di script client invia una richiesta asincrona a una pagina Web ASP.NET. Per elaborare il callback, tale pagina esegue una versione modificata del proprio ciclo di vita normale. Utilizzare il metodo GetCallbackEventReference per ottenere un riferimento a una funzione client che, quando richiamata, avvia un callback client per un evento server. Per ulteriori informazioni vedere Implementazione di callback client a livello di codice senza postback nelle pagine Web ASP.NET.
Nota: |
|---|
Gli script di callback non possono essere utilizzati nelle versioni meno recenti dei browser che non supportano il modello DOM (Document Object Model) e richiedono l'attivazione di ECMAScript sul client. Per verificare se il browser supporta i callback, utilizzare la proprietà SupportsCallback, disponibile tramite la proprietà Browser dell'oggetto Request intrinseco di ASP.NET. |
Utilizzare il metodo GetPostBackEventReference e quindi il metodo GetPostBackClientHyperlink per definire un evento postback del client. Tali metodi, quando richiamati, consentono di attivare le funzioni di script client, per fare in modo che il postback alla pagina venga eseguito dal server. Un evento di postback client si differenzia da un callback client, poiché per elaborare l'evento di postback client la pagina Web completa un ciclo di vita normale.
Per eseguire lo script client, è possibile utilizzare la proprietà OnClientClick del controllo Button, il controllo ImageButton e il controllo LinkButton.
Nell'esempio di codice riportato di seguito viene illustrato l'utilizzo del metodo RegisterClientScriptBlock della classe ClientScriptManager. Nella pagina vengono definiti due script client, ovvero PopupScript, che consente di visualizzare un messaggio di avviso al caricamento della pagina, e ButtonClickScript, che consente di definire un gestore client per l'evento onClick di un pulsante HTML.
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
' Define the name and type of the client scripts on the page.
Dim csname1 As String = "PopupScript"
Dim csname2 As String = "ButtonClickScript"
Dim cstype As Type = Me.GetType()
' Get a ClientScriptManager reference from the Page class.
Dim cs As ClientScriptManager = Page.ClientScript
' Check to see if the startup script is already registered.
If (Not cs.IsStartupScriptRegistered(cstype, csname1)) Then
Dim cstext1 As String = "alert('Hello World');"
cs.RegisterStartupScript(cstype, csname1, cstext1, True)
End If
' Check to see if the client script is already registered.
If (Not cs.IsClientScriptBlockRegistered(cstype, csname2)) Then
Dim cstext2 As New StringBuilder()
cstext2.Append("<script type=""text/javascript""> function DoClick() {")
cstext2.Append("Form1.Message.value='Text from client script.'} </")
cstext2.Append("script>")
cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), False)
End If
End Sub
</script>
<html >
<head>
<title>ClientScriptManager Example</title>
</head>
<body>
<form id="Form1"
runat="server">
<input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" />
</form>
</body>
</html>
<%@ Page Language="C#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public void Page_Load(Object sender, EventArgs e)
{
// Define the name and type of the client scripts on the page.
String csname1 = "PopupScript";
String csname2 = "ButtonClickScript";
Type cstype = this.GetType();
// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;
// Check to see if the startup script is already registered.
if (!cs.IsStartupScriptRegistered(cstype, csname1))
{
String cstext1 = "alert('Hello World');";
cs.RegisterStartupScript(cstype, csname1, cstext1, true);
}
// Check to see if the client script is already registered.
if (!cs.IsClientScriptBlockRegistered(cstype, csname2))
{
StringBuilder cstext2 = new StringBuilder();
cstext2.Append("<script type=\"text/javascript\"> function DoClick() {");
cstext2.Append("Form1.Message.value='Text from client script.'} </");
cstext2.Append("script>");
cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
}
}
</script>
<html >
<head>
<title>ClientScriptManager Example</title>
</head>
<body>
<form id="Form1"
runat="server">
<input type="text" id="Message" /> <input type="button" value="ClickMe" onclick="DoClick()" />
</form>
</body>
</html>
Gerarchia di ereditarietà
System..::.Object
System.Web.UI..::.ClientScriptManager
Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition , Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Informazioni sulla versione
.NET Framework
Supportato in: 3.5, 3.0, 2.0
Riferimenti
Altre risorse