Web Form e Web Controls

3 pagine in totale: <<Indietro 1 2 [3]

Data Controls

In questo gruppo troviamo i controls che incapsulano al proprio interno una logica più complessa e che permettono, dunque, di elencare eventuali collezioni e di mostrare dati.

Ecco un tipico esempio di Data Control:

<form runat="server">
<ASP:dropdownlist runat="server" id="myselect" autopostback="true">
  <ASP:listitem>Seleziona un sito</ASP:listitem>
  <ASP:listitem>www.aspitalia.com</ASP:listitem>
  <ASP:listitem>forum.aspitalia.com</ASP:listitem>
  <ASP:listitem>store.aspitalia.com</ASP:listitem>
</ASP:dropdownlist>
</form>
<SCRIPT language="VB" runat="server">

Sub Page_Load(Sender As Object, E As EventArgs)
  if myselect.AutoPostBack AndAlso Page.IsPostBack then
   'prende il testo del control selezionato
   Response.Redirect ("http://" & myselect.items(myselect.SelectedIndex).Value)
  end if
End Sub

</SCRIPT>

Questo è il codice HTML che verrà generato all'esecuzione dello script e che sarà visibile con un normale browser:

<form name="_ctl0" method="post" action="dropdownlist.aspx" id="_ctl0">
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value=""/>
<input type="hidden" name="__VIEWSTATE" value="dDw1OTg1NzE4MDE7Oz4bFg/+mNACnRVHRtTeHReY29uFWg==" />
<script language="javascript">
<!--
  function __doPostBack(eventTarget, eventArgument) {
   var theform = document._ctl0;
   theform.__EVENTTARGET.value = eventTarget;
   theform.__EVENTARGUMENT.value = eventArgument;
   theform.submit();
  }
// -->
</script>
<select name="myselect" id="myselect" onchange="__doPostBack('myselect','')" language="javascript">
  <option value="Seleziona un sito">Seleziona un sito</option>
  <option value="www.aspitalia.com">www.aspitalia.com</option>
  <option value="forum.aspitalia.com">forum.aspitalia.com</option>
  <option value="store.aspitalia.com">store.aspitalia.com</option>
</select>
</form>

A parte il primo pezzo, che contiene il ViewState , ciò che viene generato è codice HTML con un pizzico di JavaScript client side per l'auto invio della form al cambiare di un valore della select.

Questa particolarità è possibile utilizzando la proprietà AutoPostBack dei controlli: ad ogni cambio del control in questione, il browser tramite JavaScript invierà nuovamente il controllo ad ASP.NET.

Come si può notare dal codice ASP.NET, inoltre, questo genere di controlli prevede al proprio interno una collezione di controls di tipo ListItem , uno per ogni valore da aggiungere alla collezione che il control stesso gestirà.

Ecco dunque schematizzati in tabella i principali controls di elenco:

DropDownList
<select name="myselect" id="myselect"><option>...</option></select>
DropDownList
<select name="myselect" id="myselect" size="4"><option>...</option></select>
CheckBoxList Una serie di
<input type="checkbox"...>
RadioButton List Una serie di
<input type="radio"...>

I primi due sono controls unici nel loro genere, mentre gli ultimi sono una riproposizione di controls in funzione di una collezione degli stessi.

Data Controls avanzati: DataList, DataGrid e Repeater

All'interno di questa famiglia trovano spazio anche tre controls particolari: DataList, DataGrid e Repeater.

Si tratta di controls di elenco, per l'appunto, che data una sorgente, che viene specificata all'interno della proprietà DataSource , permettono di associare i dati attraverso un meccanismo noto come DataBinding , sfruttando appunto il metodo DataBind di questi oggetti.

Se volete capire meglio come sono fatti, in base alle funzionalità che ciascuno offre, potete leggere questo articolo .

I Rich Controls

Si tratta di controls che producono un output più o meno ricco, a partire da righe di codice molto semplici e di facile inserimento.

Ecco ad esempio come inserire in una pagina un calendario, attraverso l'oggetto Calendar :

<form runat="server">
<ASP:Calendar runat="server" id="myCal" />
</form>

Ovviamente potremo manipolarne la proprietà, come il colore della data selezionata, o altre impostazioni varie, agendo sempre sulle proprietà del control. Le trovate con l'intellisense si VS.NET oppure attraverso un reflector, anche web.

Ancora, un altro control particolarmente interessante in alcuni ambinti è AdRotator , che permette di ruotare banner pubblicitari con molta facilità.

Ecco ancora un esempio:

<asp:AdRotator id="adRot"
  BorderWidth="1"
  AdvertisementFile="adrotator.xml"
  runat=server/>

Il file adrotator.xml sarà un file XML in un particolare formato che è visibile direttamente negli esempi allegati a questa rivista. Vi basterà inserire in maniera esatta le informazioni in questo file e non ci saranno particolari problemi per far girare in maniera molto semplice le vostre immagini.

Infine, ultimo control della serie è Xml , che permette di velocizzare il rendering di file XML in normali browser, anche attraverso la trasformazione XSLT (eXtensible Stylesheets Language Transformation).

Il codice di questo e degli altri controls è come sempre invece negli esempi.

Conclusioni

Come sempre, potete trovare la lista degli HTML Controls attraverso un reflector . In questo modo potrete visualizzare in maniera estesa le proprietà, i metodi e gli eventi di questi controls e quindi cominciare a programmare gli stessi.

Approfondimenti

3 pagine in totale: <<Indietro 1 2 [3]

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.


TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC