In ASP.NET 2.0 la Label espone una nuova
proprietà, AssociatedControlID, che accetta l'ID di un altro controllo
della pagina, ad esempio una TextBox o un altro controllo di input.
Quando
questa proprietà viene valorizzata, il rendering della Label passa da un
semplice tag <span> ad un tag <label>, in cui
l'attributo for assume il valore dell'ID lato client del controllo
associato.
Un esempio per chiarire
<asp:label ID="Label1" runat="server" Text="Etichetta" />
<asp:TextBox ID="TextBox1" runat="server" />
diventa:
<span id="Label1">Etichetta</span>
<input name="TextBox1" id="TextBox1" type="Text" />
Mentre
<asp:label ID="Label1" AssociatedControlID="TextBox1" runat="server" Text="Etichetta" />
<asp:TextBox ID="TextBox1" runat="server" />
diventa:
<label for="TextBox1" id="Label1">Etichetta</span>
<input name="TextBox1" id="TextBox1" type="Text" />
La differenza
La differenza avviene dal punto di vista
dell'accessibilità. Valorizzando la proprietà
AssociatedControlID il click sulla Label si estenderà al controllo
associato. L'effetto visibile è, nel caso della TextBox, che il click sulla
Label associata sposterà il focus all'interno della TextBox stessa.
powered by IMHO 1.3