Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Le novità  del .NET Framework 4.0: ClientIDMode

Le novità del .NET Framework 4.0: ClientIDMode
Le novità del .NET Framework 4.0: ClientIDMode
Link copiato negli appunti

Tra le numerose novità  introdotte in questa versione 4.0 del .NET Framework ovviamente non potevano mancare anche nuove ed interessanti funzionalità  di ASP.NET. Tra queste troviamo la proprietà  ClientIDMode che possiamo impostare sia a livello di singola pagina nelle direttive @Page o @Master, che a livello di intera applicazione nel Web.config:

<configuration>
   <system.web>
      <pages clientIDMode="Static" />
   </system.web>
</configuration>

Questa proprietà  ci consente di intervenire sulla modalità  utilizzata da ASP.NET per assegnare i nomi ai controlli contenuti in una pagina. Come sappiamo, infatti, ad ogni controllo inserito in una pagina ASP.NET deve essere assegnato un identificatore (ID) univoco che lo distingua dagli altri controlli e che ci consenta anche di utilizzarlo dal codice contenuto nel code behind della pagina.

Questo può essere utilizzato così com'è da codice lato server, ma nel momento in cui la pagina viene renderizzata in HTML questo identificativo, lato client, viene in qualche modo alterato da ASP.NET perché è necessario che l'univocità  rimanga anche a livello di HTML. L'ID generato e assegnato al controllo quando questo diventa codice HTML è un ID che include in se tutta la gerarchia di controlli all'interno della quale lo specifico controllo è inserito.

Il nuovo ID generato da ASP.NET può essere anche letto attraverso la proprietà  ClientID che ogni controllo espone. Questo sistema però ci può causare qualche problema quando abbiamo la necessità  di utilizzare il nome di un controllo per manipolarlo ad esempio da codice JavaScript o anche da CSS.

Ecco quindi che ci viene in aiuto la nuova proprietà  ClientIDMode. Impostando opportunamente questa proprietà  possiamo modificare il modo in cui ASP.NET altera gli ID dei controlli contenuti nella pagina nel momento in cui viene generato il corrispondente codice HTML.

I valori possibili di ClientIDMode, sono:

  • AutoID, questo è il valore predefinito. L'ID HTML viene generato automaticamente rispettando la gerarchia in cui è contenuto il controllo, ovvero concatenando nel nome i nomi di tutti i controli padre del controllo. Es: ctl00_pnlPanel_ctl01_TextBox1
  • Inherit, il controllo eredita il valore di ClientIDMode dal controllo padre
  • Static, l'ID HTML non viene modificato e resta quindi identico all'ID assegnato al controllo lato server. In questo caso è il programmatore che deve preoccuparsi di assegnare ID univoci, altrimenti in caso di conflitto viene generata una eccezione a runtime.
  • Predictable, utile nel caso di controlli data bound, consiste nella concatenazione dell'ID del controllo corrente con l'ID del controllo padre, solo ad un livello. Quindi ad esempio nel caso di un controllo ListView, ogni controllo contenuto nei suoi template avrà  il suo ID concatenato con l'ID del controllo ListView padre.

Ti consigliamo anche