Thomas Bandt

Über mich | Kontakt | Archiv

Fieldset und Label mit ASP.NET

Zwei eigentlich triviale Dinge, die gerne untergehen und auch bei so manchem Entwickler, der schon einige Zeit mit ASP.NET arbeitet, unbekannt sind, sind die zwei "gespaltenen Persönlichkeiten" von Panel- und Label-Webcontrol.

Warum gespalten? Weil beide Controls jeweils zwei unterschiedliche HTML-Tags bzw. HTML-Tag-Kombinationen rendern können.

Panel-Control I

Das Panel rendert in allen aktuellen Browsern ein Div-Element. So wird aus

<asp:Panel id="MyPanel" runat="server">Inhalt</asp:Panel>

im Browser dann

<div>Inhalt</div>

Panel-Control II

Fügt man nun aber noch das Attribut GroupingText hinzu, dann wird aus dem Panel ein Fieldset, samt zugehöriger Legende.

<asp:Panel id="MyPanel" runat="server" GroupingText="Legende">Inhalt</asp:Panel>

Ergebnis:

<fieldset>
    <legend>Legende</legend>
    Inhalt
</fieldset>

Label-Control I

Aus einem Label wird normalerweise ein Span, ein sogenanntes Inline-Element:

<asp:Label id="MyLabel" runat="server">Inhalt</asp:Label>

Ergebnis:

<span>Inhalt</span>

Label-Control II

Fügt man nun noch das Attribut AssociatedControlID hinzu und gibt als Value die ID eines (existierenden) Formular-Controls (etwa TextBox oder DropDownList), dann wird aus dem WebControl Label ein echtes HTML-Label.

<asp:Label id="MyLabel" runat="server" AssociatedControlID="TextBox1">Inhalt</asp:Label>

Ergebnis:

<label for="TextBox1ClientID">Inhalt</label>

Fazit

Wirklich zwei winzig kleine Dinge mit doch großer Wirkung. So kann man mittels eines Fieldsets ein Formular durchaus sinnvoll strukturieren und übersichtlicher machen, die Labels sorgen dann dafür, dass etwa Textbox-Beschriftungen auch maschinenlesbar (Stichwort "Accessibility"!) ihren Textboxen zugeordnet werden. Zu guter Letzt noch der obligatorische Link zu SelfHTML.

Kommentare

  1. Jürgen Gutsch schrieb am Mittwoch, 16. Mai 2007 08:18:00 Uhr:

    Hi Thomas,

    cool, danke, das mit dem Fieldset habe ich noch nicht gewusst...
  2. Christian Hünniger schrieb am Mittwoch, 16. Mai 2007 08:45:00 Uhr:

    Cool,

    wusste ich auch nicht, erspart einem ja ne Menge Tipparbeit.


    Thx Thomas


« Zurück  |  Weiter »