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.