HtmlGenericControl



Ci sono più di cento differenti tag in html, e non è pensabile che .NET preveda per ciascuno di essi uno specifico Control corrispondente. Questa è la ragione per cui è stata creata una classe generica per gli elementi non definiti in ASP.NET.

Per dichiarare un elemento generico si può ad esempio usare un elemento <div>:

<div id="outResult" runat="server" />

e poi utilizzarne la proprietà InnerHtml che imposta il testo html compreso tra l'apertura e la chiusura del tag <div>:

void Page_Load(Object sender, EventArgs e)
{
  outResult.InnerHtml = "Codice HTML da inserire qui";
}

Abbiamo visto un altro esempio di HtmlGenericControl legato al tag <body>.

Altre proprietà che è possibile usare con un HtmlGenericControl e che sono derivate dalla classe base HtmlControl sono:

Attributes Restituisce una collezione di tutti gli attributi (nome e valore) del control. Attraverso questa proprietà è possibile anche impostare o leggere attributi non previsti da html.
EnableViewState Imposta o legge il valore booleano true/false che indica se l'elemento deve mantenere il suo stato oppure no. Default è True.
Page Riferimento all'oggetto Page che contiene il control.
Style Riferimento alla collezione di tutte le proprietà cascading style sheet (CSS) relative al control.
TagName Restituisce il nome del tag che contiene l'attributo runat=server, ad esempio "body" o "div".
Visible Imposta o legge il valore booleano true/false che indica se l'elemento è visibile. Default è true.

Abbiamo già visto nel precedente capitolo un esempio dell'uso della proprietà Attributes. Vediamo ora un altro esempio sull'uso della proprietà Visible: creiamo una pagina web in cui inseriamo due elementi generici Txt1 e Txt2 e due bottoni OnOff1 e OnOff2 che serviranno per nascondere o visualizzare il testo richiesto.

<html>
<head>
<script language="C#" runat="server">

void Submit1_Click(Object sender, EventArgs e)
{
 if (Txt1.Visible==true)
   {
   Txt1.Visible=false;
   OnOff1.Value="Mostra il testo Rosso";
   }
 else
   {
   Txt1.Visible=true;
   OnOff1.Value="Nascondi il testo Rosso";
   }
}
void Submit2_Click(Object sender, EventArgs e) {
 if (Txt2.Visible==true)
   {
   Txt2.Visible=false;
   OnOff2.Value="Mostra il testo Blu";
   }
 else
   {
   Txt2.Visible=true;
   OnOff2.Value="Nascondi il testo Blu";
   }
}
</script>
</head>
<body>
<h3><font face="Verdana">HtmlGenericControl - Esempio </font></h3>
<form runat=server> <p>
Clicca su un bottone per nascondere o mostrare un testo: <p>
<div id="Txt1" runat="server"><h1>
  <font color="#FF0000"> Rosso </font> </h1></div><br>
<div id="Txt2" runat="server"><h1>
  <font color="#0000FF"> Blu </font></h1></div> <br>
<input type="submit" runat="server" id="OnOff1"  Value="Nascondi il testo Rosso" OnServerClick="Submit1_Click"> <input type="submit" runat="server" id="OnOff2"  Value="Nascondi il testo Blu" OnServerClick="Submit2_Click">
</form>
</body>
</html>

La proprietà Visible e le altre proprietà sopra elencate sono ereditate anche da tutti gli HtmlControls specifici.

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