Inhalt
Vorwort
1 Wie .NET und ASP.NET funktionieren
2 Installation
3 Hinweise zu VB.NET
4 »Hallo, Welt!« – Ein ASP.NET-Crashkurs
5 Die Page-Klasse
6 HTML-Serversteuerelemente
7 Validierung von Anwendereingaben
8 Webserversteuerelemente
9 Webserversteuerelemente für die Darstellung von Listen
10 Webserversteuerelemente selbst erstellen
11 Der Status von Seiten, Sitzungen und Applikationen
12 ASP.NET und Datenbanken
13 »Wer darf was?« ASP.NET und Sicherheit
14 Webanwendungen erstellen und konfigurieren
15 Leistungssteigerung durch Caching
16 Web Services
A Anhang
Index
Download (ca 14,3 MB)
Buch bestellen (29,90 EUR)
Ihre Meinung?@
<< zurück | Galileo Computing / <openbook> / Einstieg in ASP.NET | vor >>
Einstieg in ASP.NET von Matthias Lohrer
| Kapitel 7 Validierung von Anwendereingaben
|  | 7.1 RequiredFieldValidator
|  |  | 7.1.1 Display-Attribut
|  |  | 7.1.2 InitialValue-Attribut
|  |  | 7.1.3 Die Fehlermeldung definieren
|  | 7.2 Das ValidationSummary-Steuerelement
|  | 7.3 Wie das Display-Attribut funktioniert
|  | 7.4 CompareValidator
|  |  | 7.4.1 Die Eingabe mit einem fixen Wert vergleichen
|  |  | 7.4.2 Zwei Eingabefelder miteinander vergleichen
|  |  | 7.4.3 Eine Typüberprüfung vornehmen
|  | 7.5 RangeValidator
|  | 7.6 RegularExpressionValidator
|  |  | 7.6.1 Reguläre Ausdrücke erstellen
|  |  | 7.6.2 Eingaben mit regulären Ausdrücken überprüfen
|  |  | 7.6.3 Konventionen für gültige Passwörter überprüfen
|  | 7.7 CustomValidator
|  |  | 7.7.1 Serverseitige Überprüfung
|  |  | 7.7.2 Eine clientseitige Überprüfung ergänzen
## 7.7 CustomValidator Wenn Sie spezielle Anforderungen an eine Eingabeüberprüfung haben, die sich mit den bisher vorgestellten Validierungssteuerelementen nicht abdecken lassen, können Sie eine individuelle Überprüfung mit einem CustomValidator-Steuerelement definieren. Während die bisher vorgestellten Validierungssteuerelemente stets sowohl für eine serverseitige als auch für eine clientseitige Überprüfung gesorgt haben, kann ASP.NET bei der Validierung mit einem CustomValidator-Steuerlement nicht selbst die JavaScript-Routinen für die clientseitige Überprüfung erstellen. Daher können Sie den Test entweder nur serverseitig durchführen, oder Sie erstellen selbst zusätzlich entsprechende Routinen für die clientseitige Überprüfung. Mit dem Attribut OnServerValidate legen Sie die Routine für die serverseitige Überprüfung fest. Mit dem Attribut ClientValidationFunction stellen Sie den Zusammenhang zur benötigten JavaScript- beziehungsweise VBScript-Routine her. Der Versand des Formulars löst das ServerValidate-Ereignis aus. Die Prozedur, die auf dieses Ereignis reagiert, benötigt diese Signatur:
    Sub serverTest (source As object, _
                    arguments As ServerValidateEventArgs)
Der Parameter arguments vom Typ ServerValidateEventArgs verfügt über zwei wichtige Eigenschaften:
| Über die Eigenschaft Value rufen Sie den Wert ab, den der Anwender eingegeben hat.
| Die Eigenschaft IsValid setzen Sie selbst auf True oder False, nachdem Sie die Überprüfung durchgeführt haben.
### 7.7.1 Serverseitige Überprüfung Als Beispiel habe ich ein Skript aus der .NET-Dokumentation leicht abgewandelt. Der Anwender soll eine Zahl eingeben, die ohne Rest durch 3 teilbar ist. Im ersten Schritt wird die Überprüfung nur serverseitig durchgeführt. custom01.aspx enthält die Realisierung. Abbildung 7.10 zeigt die Darstellung im Browser. Hier klicken, um das Bild zu Vergrößern Abbildung 7.10 Mit einem CustomValidator definieren Sie individuelle Gültigkeitsüberprüfungen.
Attribut | Wert
--- | ---
id | Eindeutiger Bezeichner
ControlToValidate | id des zu überprüfenden Steuerelements
ClientValidationFunction | Name der JavaScript-Routine für die Validierung
OnServerValidate | Name der serverseitigen Ereignisprozedur für die Validierung
ErrorMessage | Fehlermeldung für das ValidationSummary-Steuerelement
Text | Fehlermeldung
Display | None | Static (Default) | Dynamic
EnableClientScript | true | false
ForeColor | Farbangabe
BackColor | Farbangabe
runat | Server
Tabelle 7.7 Attribute des CustomValidator-Steuerelements
    <!-- custom01.aspx -->
    <% @Page debug="true" Language="VB" Strict="True" %>
    <script runat="server" >
    Sub IstDurchDreiTeilbar (source As object, _
                          args As ServerValidateEventArgs)
       try
          Dim num As Integer = Integer.Parse(args.Value)
          args.IsValid = ((num mod 3) = 0)
       catch ex As Exception
          args.IsValid = false
       End try
    End Sub
    </script>
    <html><head>
    <title>CustomValidator</title>
    </head><body>
    <h3>CustomValidator</h3>
    <p>Bitte geben Sie eine ganze Zahl ein, die
    ohne Rest durch 3 teilbar ist.</p>
    <form runat="server">
    <input type="text" runat="server" id="txtZahl">
    <asp:Button id="btnOK"
                Text=" OK "
                runat="server"/>
    <br>
    <asp:CustomValidator
         ControlToValidate="txtZahl"
         OnServerValidate="IstDurchDreiTeilbar"
         Text="Diese Zahl ist nicht durch 3 teilbar."
         runat="server"
         EnableClientScript="false" >
    </asp:CustomValidator>
    </form></body></html>
Die Eigenschaft arguments.Value gibt einen String zurück. Mit der statischen Methode Integer.Parse wird zunächst eine Konvertierung in den Integer-Typ durchgeführt. Wenn bereits bei der Konvertierung ein Fehler auftritt, wird die IsValid-Eigenschaft auf False gesetzt. Ein Fehler tritt beispielsweise auf, wenn der Anwender keine Zahl, sondern Buchstaben eingegeben hat, oder wenn die eingegebene Zahl größer oder kleiner ist, als sie der Integer-Typ verarbeiten kann. Wenn die Konvertierung gelingt, wird das Ergebnis der Überprüfung, ob bei der Division durch 3 ein Rest bleibt oder nicht, ebenfalls der IsValid-Eigenschaft zugewiesen. ### 7.7.2 Eine clientseitige Überprüfung ergänzen Wenn Sie den Test zusätzlich auch im Browser durchführen möchten, dann bleibt Ihnen bei der Verwendung eines CustomValidator-Steuerelements nichts anderes übrig, als die entsprechende Prüflogik selbst in einem Skript abzubilden, das im Browser ablaufen kann. custom02.aspx ergänzt die entsprechenden Angaben in VBScript. Laut .NET-Dokumentation wird zwar auch JavaScript unterstützt. Bei eigenen Versuchen ist es mir aber nicht gelungen, eine entsprechende JavaScript-Routine zur Mitarbeit zu bewegen.
    <!-- custom02.aspx -->
    <% @Page debug="true" Language="VB" Strict="True" %>
    <script runat="server" >
    Sub IstDurchDreiTeilbar (source As object, _
                     args As ServerValidateEventArgs)
       try
          Dim num As Integer = Integer.Parse(args.Value)
          args.IsValid = ((num mod 3) = 0)
       catch ex As Exception
          args.IsValid = false
       End try
    End Sub
    </script>

    <script language="vbscript">
    <!--
       Sub ClientTest(source, args)
          If (args.Value mod 3 ) = 0 Then
             args.IsValid=true
          Else
             args.IsValid=false
          End If
       End Sub
    // -->
    </script>

    <html><head>
    <title>CustomValidator</title>
    </head><body>
    <h3>CustomValidator</h3>
    <p>Bitte geben Sie eine ganze Zahl ein, die
    ohne Rest durch 3 teilbar ist.</p>
    <form runat="server">
    <asp:TextBox id="txtZahl" runat="server" />
    <asp:Button id="btnOK"
                Text=" OK "
                runat="server" />
    <br>
    <asp:CustomValidator
         id="myCustomValidator"
         ControlToValidate="txtZahl"
         OnServerValidate="IstDurchDreiTeilbar"
         ClientValidationFunction="ClientTest"
         Text="Die Eingabe ist ungültig."
         runat="server"
         EnableClientScript="true" />
    </form></body></html>
Im CustomValidator-Steuerelement wurde das Attribut ClientValidationFunction="ClientTest" ergänzt und das Attribut EnableClientScript auf true gesetzt. Nach dem serverseitigen Skriptteil wurde das clientseitige Skript ClientTest eingefügt. Die Logik des clientseitigen Skripts entspricht exakt der Logik des serverseitigen Skripts.
<< zurück | <top> | vor >>
Zum Katalog
Einstieg in ASP.NET bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung

.NET-Bibliothek
| Einstieg in VB.NET
| VB.NET
| Einstieg in C#
| Visual C#
| VB.NET und Datenbanken

Empfehlung
| Einstieg in XML

Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

MyGalileo
Der Service für registrierte Leser: Info

Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de