ASP.Net  »  Guide  »  Guida ASP.NET 2.0 

Inserire script lato client



Può capitare di dover inserire del codice JavaScript nei nostri controlli o nelle nostre pagine. Ad esempio potremmo voler visualizzare un avviso (un alert) a sequito di periodo prolungato di inattività dell'utente. Lo strumento che ASP.NET 2.0 ci fornisce per inserire codice lato client è la proprietà ClientScript della classe Page.

Procediamo anche questa volta con un esempio: realizziamo una pagina che mostra la data di oggi e l'ora di caricamento in un finstra alert, dove data e ora sono lette sul server web e non sul client.

Apriamo un nuovo progetto ed andiamo in Design view della pagina Default.aspx. Facciamo doppio click sulla pagina, che equivale ad un doppio click sul form contenuto nella pagina. Nella parte codice, viene scritto un gestore di evento, il Page_Load, e qui cominciamo ad implementare la nostra applicazione.

Definiamo una variabile stringa, 'script' e vi inseriamo il codice JavaScript: alert('Data ed ora del server: ' + ...).

Per completare la stringa leggiamo sul server data ed ora usando DateTime.Now, quindi colleghiamo tutto.

Listato 8. Creazione del codice lato client

string Script_1 = "alert('Data ed ora del server: " + DateTime.Now + "');";

Dobbiamo adesso registrare lo script lato client ed utilizziamo il metodo RegisterClientScriptBlock. Il codice di Page_Load diventa:

Listato 9. Codice lato client in Page_Load

string Script_1 = "alert('Data ed ora del server: " + DateTime.Now + "');";
string MyKey = "KeyScript_1";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), MyKey, Script_1, true);

Al metodo RegisterClientScriptBlock() abbiamo fornito i parametri necessari al suo corretto funzionamento che sono:

  • il tipo dell'oggetto che lo chiama, che nel nostro caso è la pagina chiamante e la possiamo identificare con la parola chiave this,
  • una stringa con una chiave che identifica lo script: possiamo metterci un nome inventato,
  • una stringa con il contenuto dello script,
  • un valore booleano che se impostato a true indica che lo script va racchiuso tra <script> e </script>; altrimenti inserisce lo script così com'è.

Non ci resta che provare l'applicazione premendo F5. Se tutto va bene otteniamo una finestra con il seguente messaggio:

Figura 1. Output della pagina

Output della pagina

Diamo pure l'OK ed ispezioniamo il file HTML visualizzando il sorgente con l'editor di testi.

Figura 2. Codice generato dall'applicazione

Codice generato dall'applicazione

Notiamo la presenza del VIEWSTATE, che abbiamo introdotto nella lezione sul postback, e dello script lato client che è stato inserito all'interno della nostra pagina.

Inserire un JavaScript esterno

A volte occorre inserire nel codice lato client uno script contenuto in un file esterno. Supponiamo per esempio di voler inserire il file "descrizione.js". In questo caso usiamo il metodo RegisterClientScriptInclude().

Listato 10. Includere un JavaScript esterno con ASP.NET

Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "Chiave", "~descrizione.js");

L'output in questo caso sarebbe:

Risultato dell'inclusione

<script src="~/descrizione.js" type="text/JavaScript"></script>

Potete scaricare il sorgente dell'esempio della presente lezione da qui.

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