www.zibbaldone.it: Pagine sparse di appunti e pensieri  dalla tecnologia alla poesia ma anche di più...


Gerarchia dei controlli


   Quando ASP.NET carica in memoria i controlli server, non li inserisce in un unico elenco casualmente, ma secondo un ordine gerarchico

Ogni controllo server possiede un insieme di controlli in grado di contenerne di aggiuntivi

La pagina ASP.NET  stessa in effetti è un controllo server, o meglio un controllo sever page

Codice di esempio:

<table id="" tblPlenty" runat="server">

<tr id="RowPlentyHeading"  runat"server">

<td colspan="3" id"CellPlentyTitle" runat"server"></td>

</tr>
 <tr id="RowPlentyHeading"  runat"server">

<td id"CellPlentyDetail" runat"server"></td>

<td id"CellPlentyAmount" runat"server"></td>

<td id"CellPlentyUnit" runat"server"></td>

<td id"CellPlentyDescription" runat"server"></td>

</tr>

</table>

Si presume che l'intero codice sia contenuto in un a pagina web . Il livello più alto della gerarchia è quindi un controllo page.

Facendo riferimento al codice di esempio  prima descritto ci veniamo a trovare in una situazione simile.

  1. Il controllo server page contiene il controllo HTML table denominato tblPlenty
  2. L'insieme dei controlli nel controllo server HTML table contiene controlli server :
    • RowPlentyHeading
    • RowPlentyDetail
  3. Il controlloo serve denominato RowPlentyHeading contiene un elemento nell'insieme di controlli denominato CellPlentyTitle
  4. Il controllo server denominato RowplentyDetail, contiene tre elementi nell'insieme dei controlli denominati CellPlentyAmount, CellPlentyUnit e CellPlentyDescription

In questo esempio si avrebbe la seguente sequenza di rendering richiesta da ASP.NET

  1. Il controllo Page chiede al controllo tblPlenty di effettuare il rendering
  2. Il controllo tblPlenty chiede di eseguire il rendering ai controlli subordinati
    • RowPlentyHeading
    • RowPlentyDetail

  3. A loro volta i controlli  RowPlentyHeading e RowPlentyDetail chiederebbero ai rispettivi controlli subordinati di effettuare il rendering

Il codice di programmazione è in grado di :

L'intero ciclo di vita di una pagina :

di una pagina ASP.NET, richiede poche frazioni di secondo. In questo piccolo lasso di tempo ASP.NET bombarda ogni singolo controllo server con una serie di messaggi definiti eventi.

Per ogni evento, un determinato controllo server potrebbe possedere oppure no un gestore evento corrispondente ( ovvero un tipo di funzione o subroutines)

Se è presente un gestore, ASP.NET lo eseguirà in qualsiasi momento si verifica l'evento ad esso associato.

 

Indice