ASP.Net  »  Guide  »  Guida ASP.NET AJAX 

Lo ScriptManager



Per utilizzare tutte le nuove caratteristiche OOP del JavaScript "potenziato", abbiamo bisogno di inserire, in ogni pagina, una sorta di "Proxy JavaScript".

Lo ScriptManager svolge proprio questa funzione. Una volta inserito in una pagina ASP.NET, registra i nuovi tipi, i namespace e quant'altro nella pagina corrente, rendendo accessibili questi nuovi oggetti Javascript.

Ma oltre a questa funzione questo controllo assolve altri compiti utili anche in altre situazioni:

  • interagire con i nuovi namespace Sys presenti in ASP.NET AJAX ,
  • registrare script personali o estendere quelli esistenti,
  • utilizzo dei controlli <UpdatePanel> e figli,
  • accesso a WebService in asincrono o autenticazione ASP.NET via script.

Render parziale

Una delle funzioni principali che ci si aspetta di ottenere da Ajax è la possibilità di ridisegnare solo una porzione di una pagina senza dover ricaricare tutto.

Il controllo ScriptManager ci permette di ottenere questa funzione, in coppia con un altro strumento fondamentale di ASP.NET AJAX: il controllo UpdatePanel.

UpdatePanel, in particolare, espone l'evento AsyncPostBackError, con il quale possiamo eseguire una verifica sugli errori generati dal controllo.

Interazione con i namespace

Questo elemento deve essere inserito come un controllo server all'interno della pagina e la sua presenza permette il funzionamento del codice ASP.NET AJAX JavaScript.

Come per tutto il codice JavaScript, le nostre dichiarazioni possono essere inserite in file JavaScript esterni, con estensione ".js", il che ci permette di avere maggior controllo e pulizia nelle nostre pagine. In ogni caso deve essere definito uno <asp:ScriptManager>

Listato 1. Aggiunta JavaScript esterno

<form id="Webform" runat="server">
  <asp:ScriptManager runat="server" ID="scriptManager" />
</form>

<!-- caricamento del file esterno -->
<script type="text/javascript" src="./Funzioni.js" />

Infine, ASP.NET AJAX prevede un controllo a fine caricamento del file JavaScript, è quindi bene inserire sempre al termine del file il comando di notifica di fine lettura, che indica allo ScriptManager che il codice è stato caricato.

Listato 2. Segnalazione di fine caricamento

if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

Possiamo sfruttare quindi i nuovi prototipi e namespace presenti nel namespace Sys, in cui troviamo tutte le classi utili per Ajax, quindi accesso a WebService asincrono, accesso ai controlli Web e alla configurazione.

ScriptManager è quindi il controllo perno di ASP.NET AJAX, senza il quale nessuna pagina o controllo ascx potrebbero usufruire delle caratteristiche sopra citate.

Per approfondire è possibile gestire di più ScriptManager in una stessa pagina, attraverso il controllo ScriptProxyManager in grado appunto di smistare le funzioni mirate ad uno specifico ScriptManager.

Ultimi articoli ASP.Net

LINQ e la trappola della 'deferred execution'

Una "trappola" in cui si può incappare utilizzando il risultato di...

C#, le Custom Type Conversion

Conversioni personalizzate tra classi, creare metodi particolari per...

Introduzione a Entity Framework

Il framework ORM messo a disposizione da .NET

Repeater: visualizzare un feed RSS

Utilizzare il controllo XMLDataSource e sfruttare il metodo XPath()...

Repeater, il server control "semplice"

Cos'è e come funziona il controllo Repeater

Altri articoli

Guide ASP.Net

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Guida Visual Studio 2010

L'ambiente di sviluppo di riferimento per sviluppare applicazioni su...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto