2 pagine in totale: <<Indietro 1 [2]
Gli eventi
Ciò che fa di questo control qualcosa di veramente interessante sono gli eventi che supporta. Oltre ai classici DataBinding, Load, Unload, Init e Pre_Render, utilissimi per cambiare al volo alcune proprietà, sono disponibili tre eventi propri del controllo:
- DayRender , di tipo DayRenderEventHandler , utile per modificare in fase di rendering del singolo giorno (e quindi cella del control) una qualsiasi proprietà
- VisibleMonthChanged di tipo MonthChangedEventHandler , che viene invocato quando si cambia mese di visualizzazione
- SelectionChanged di tipo EventHandler , invocato quando selezioniamo un giorno qualsiasi del controllo e che ci permette, come vedremo, di recuperarne il valore
Un utilizzo pratico: date-pickup
Un controllo del genere in sè può trovare diversi utilizzi: estrarre eventi da un database partendo dalla data selezionata o essere utilizzato in fase di immessione per inserire date, utilizzando qualcosa che come praticità è nettamente superiore all'inserimento manuale.
Vediamo dunque come sfruttare al meglio il controllo, utilizzando all'interno di una popup che ci permetta di selezionare la data in maniera visuale e con un po' di Javascript (client-side) trasferire il valore appena ottenuto alla form contenuta sulla nostra pagina principale.
Per prima cosa dobbiamo inserire il link sulla pagina che andrà ad aprire la popup, tipicamente così composta:
<form name="frm">
<input size="13" type="text" name="data">
<a href="javascript:popdate('frm.data', '');">Seleziona data</a> Come si nota, è stato aggiunto un comodo link dopo la form che invoca una funzione Javascript client-side, qui riportata:
<SCRIPT Language="JavaScript"><!--
function popdate(campo, valore) {
CalWin = window.open('calendar.aspx?campo='+campo+'&data='+valore, 'calwindow','width=200,height=180,scrollbars=no,toolbar=no')
}
//--></SCRIPT> Come si può notare passiamo al file calendar.aspx il nome della form e dell'input HTML a cui dovrà essere restituito il valore. Nulla ci vieta di rendere l'input stesso non modificabile da parte dell'utente.
A questo punto il nostro intervento si sposta sul file calendar.aspx, all'interno del quale inseriremo il codice necessario a creare il control Calendar, a cui assegneremo come nome "cal".
E' inoltre necessario aggiungere l'evento che andrà a gestire il cambio data: ci basterà inserire questo testo all'interno della dichiarazione del control:
onselectionchanged="ShowDate"Ora è sufficiente inserire la routine lato-server che andrà ad intercettare l'evento di cambio di giorno selezionato, che non farà altro che creare al volo il codice Javascript client-side necessario per inviare alla pagina di partenza il valore selezionato:
<SCRIPT runat="server">
Sub ShowDate(sender As Object, e As EventArgs)
Response.Write ("<SCRIPT language=""Javascript""><!--" & VbCrlf)
Response.Write ("window.opener." & Request.Params("campo") & ".value='")
Response.Write (cal.SelectedDate.ToString("dd/MM/yyyy") & "';" & VbCrLf)
Response.Write ("self.close();" & VbCrLf)
Response.Write ("--></SCRIP")
Response.Write ("T>")
End Sub
</SCRIPT> Come si può notare il codice da aggiungere non è complicatissimo e con pochissimi sforzi si può aggiungere questa funzionalità davvero utile.
Conclusioni
Calendar rappresenta uno dei controlli più semplici ma allo stesso tempo potenti che ASP.NET ci mette a disposizione.
E' programmabile praticamente in ogni suo aspetto e ci permette di utilizzarlo in ambiti in cui, con Classic ASP, avevamo bisogno di molto più codice.
Ancora una volta con ASP.NET possiamo scrivere meno codice ed avere allo stesso più funzionalità.
Approfondimenti
- Il control Calendar all'interno del class browser
2 pagine in totale: <<Indietro 1 [2]
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- Galleria fotografica dinamica con ASP.NET AJAX
- Usare Search come un servizio nei tuoi siti e nei tuoi client
- Mappe nel tuo sito con Virtual Earth
- Integrare Windows Live ID, Contacts e Presence API nelle tue applicazioni
- Introduzione ai cloud based service con Windows Live Services
- Realizzare un custom extender AJAX con ASP.NET 3.5
- Tracciare le modifiche ai dati e allineare i datawarehouse con il Change Data Capture in SQL Server 2008
- Le nuove caratteristiche di IIS 7.0 per sviluppatori e sistemisti
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.








Difficoltà

Stampa
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!
