7.2 Das ValidationSummary-Steuerelement
 
Mit dem ValidationSummary-Steuerelement können Sie einen zusammenfassenden Fehler-Report zu allen Fehlern einer Seite erstellen. Mit dem Attribut HeaderText geben Sie diesem Fehler-Report einen einführenden Titel. Zu jedem Fehler gibt das ValidationSummary-Steuerelement diejenige Fehlermeldung aus, die die einzelnen Validierungssteuerelemente im Attribut MessageText festgelegt haben.
Mit dem Attribut DisplayMode legen Sie die Darstellungsform für die Aufzählung der diversen Fehler fest. Hier stehen die Werte BulletList (Punkt-Auflistung), List (einfache Auflistung) und SingleParagraph (ohne Punkt und Komma) zur Verfügung.
Wenn der Fehler-Report nicht als HTML-Code in die Seite eingefügt werden soll, gibt es die Option ShowMessageBox="true". Damit wird eine JavaScript-Alert-Box ausgelöst. In diesem Fall darf das Attribut EnableClientScript jedoch nicht auf false stehen. Wenn Sie das ValidationSummary-Steuerelement vom Code aus beeinflussen wollen, können Sie über das Attribut ShowSummary= "true|false" festlegen, ob der Fehler-Report angezeigt oder unterdrückt werden soll.
summary01.aspx zeigt hinter jedem Eingabefeld eine Meldung an. Im zusammenfassenden Fehler-Report erscheint außerdem jeweils die mit ErrorMessage definierte Fehlermeldung. Durch die Verwendung des Attributs DisplayMode="BulletList" werden die Fehler in der Form einer Punktaufzählung dargestellt. Abbildung 7.3 zeigt die Darstellung im Browser.
<!-- summary01.aspx -->
<% @Page debug="true" %>
<html><head>
<title>ValidationSummary-Demo</title></head><body>
<form runat="server">
<h3>ValidationSummary-Demo</h3>
Bitte füllen Sie alle Felder aus:<br>
Vorname:
<input type="text" runat="server" id="txtVorname">
<asp:RequiredFieldValidator
ControlToValidate="txtVorname"
runat="server"
ErrorMessage="Der Vorname fehlt.">
Bitte geben Sie den Vornamen an.
</asp:RequiredFieldValidator><br>
Nachname:
<input type="text" runat="server" id="txtNachname">
<asp:RequiredFieldValidator
ControlToValidate="txtNachname"
runat="server"
ErrorMessage="Der Nachname fehlt.">
Bitte geben Sie den Nachnamen an.
</asp:RequiredFieldValidator> <br>
<input type="submit" runat="server" value=" OK "><br>
<asp:ValidationSummary
runat="server"
HeaderText="Bitte <b>korrigieren</b> Sie folgende
Fehler:"
ShowSummary="true"
DisplayMode="BulletList"
/>
</form></body></html>
 Hier klicken, um das Bild zu Vergrößern
Abbildung 7.3 Das ValidationSummary-Steuerelement fasst alle Eingabefehler einer Seite zusammen.
Offenkundig übertreibt dieses Beispiel aber die Möglichkeit, Fehlermeldungen auszugeben, denn die Seite wirkt völlig überfrachtet.
| Tipp Wem es hier zu bunt wird, dem sei folgende Lösung vorgeschlagen: Fehlerhafte Felder werden lediglich mit einem kleinen Signal, z. B. einem roten Asterisk oder einer kleinen Grafik markiert. Als Zusammenfassung wird nur der Hinweis ausgegeben, dass der Anwender die markierten Felder überprüfen möge. Für viele Fälle dürfte diese Methode ausreichen.
|
Zu diesem Zweck lassen Sie bei den RequiredFieldValidator-Steuerelementen das ErrorMessage-Attribut weg und geben als Wert für das Text-Attribut (beziehungsweise zwischen dem öffnenden und dem schließenden Tag des jeweiligen RequiredFieldValidator-Steuerelements) lediglich ein * beziehungsweise ein entsprechend geeignetes img-Tag an. Web-Designern bietet sich hier die Herausforderung, ein aussagekräftiges Icon zu entwerfen. summary02.aspx enthält den geänderten Code und Abbildung 7.4 zeigt die Darstellung im Browser.
<!-- summary02.aspx -->
<% @Page debug="true" %>
<html><head>
<title>ValidationSummary-Demo</title></head><body>
<form runat="server">
<h3>ValidationSummary-Demo</h3>
Bitte füllen Sie alle Felder aus:<br>
Vorname:
<input type="text" runat="server" id="txtVorname">
<asp:RequiredFieldValidator
ControlToValidate="txtVorname"
runat="server">
<img src="img/achtung.gif" width="10" height="10"
alt="Bitte korrigieren">
</asp:RequiredFieldValidator><br>
Nachname:
<input type="text" runat="server" id="txtNachname">
<asp:RequiredFieldValidator
ControlToValidate="txtNachname"
runat="server">
<img src="img/achtung.gif" width="10" height="10"
alt="Bitte korrigieren">
</asp:RequiredFieldValidator> <br>
<input type="submit" runat="server" value=" OK "><br>
<br>
<asp:ValidationSummary
runat="server"
HeaderText='Bitte korrigieren Sie die Felder,
die mit <img src="img/achtung.gif"
width="10" height="10"
alt="Bitte korrigieren">
markiert sind.'
/>
</form></body></html>
 Hier klicken, um das Bild zu Vergrößern
Abbildung 7.4 Mangelhafte Eingaben werden markiert. Die Zusammenfassung erklärt die Markierung.
| Attribut
|
Wert
|
| id
|
Eindeutiger Bezeichner
|
| DisplayMode
|
BulletList | List | SingleParagraph
|
| EnableClientScript
|
true | false
|
| ShowSummary
|
true | false
|
| ShowMessageBox
|
true | false
|
| HeaderText
|
Überschrift
|
| runat
|
server
|
| ForeColor
|
Farbangabe, z. B. ForeColor="Blue"
|
| BackColor
|
Farbangabe, z. B. BackColor="#FFAA33"
|
Tabelle 7.2 Attribute von asp:ValidationSummary
Wenn Sie das Attribut ShowMessageBox="true" verwenden, dann erscheint die summierende Fehlermeldung zusätzlich in einem JavaScript-Dialogfeld in Kombination mit einem alarmierenden Piepton. In diesem Fall ist unter Umständen auch die Option ShowSummary="false" sinnvoll, denn sonst erscheint die Fehlermeldung sowohl direkt auf der Seite als auch im JavaScript-Dialogfeld.
| Achtung Wenn Sie die Meldung in einem JavaScript-Dialogfeld anzeigen lassen, können Sie innerhalb des Wertes für das Attribut HeaderText keine HTML-Auszeichnungen und also auch keine img-Elemente verwenden.
|
|