Help and Support

Artikel-ID: 310145 - Geändert am: Mittwoch, 24. September 2003 - Version: 1.2

SO WIRD´S GEMACHT: Erweitern eines Webformular-Steuerelements für die Verwendung mit den Überprüfungs-Steuerelementen mit Visual C# .NET

Dieser Artikel wurde zuvor veröffentlicht unter D310145
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
310145  (http://support.microsoft.com/kb/310145/EN-US/ ) HOW TO: Extend a Web Form Control to Work with the Validation Controls Using Visual C# .NET
Eine Version dieses Artikels für Microsoft Visual Basic .NET finden Sie unter 310082  (http://support.microsoft.com/kb/310082/DE/ ) .
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.

Auf dieser Seite

Alles erweitern | Alles schließen

Zusammenfassung

Nicht alle Webformular-Steuerelemente können zusammen mit den Überprüfungs-Steuerelementen verwendet werden. Um ein Steuerelement mit den Überprüfungs-Steuerelementen verwenden zu können, muss das Steuerelement über ein ValidationProperty-Attribut verfügen. Das ValidationProperty-Attribut gibt an, welchen Wert die Überprüfungs-Steuerelemente überprüfen sollen.

Das Calendar-Steuerelement ist eines der Steuerelemente, die im Originalzustand nicht überprüft werden können. In vielen Fällen müssen Sie jedoch die Benutzerauswahl im Calendar-Steuerelement überprüfen können.

Es gibt zwei Lösungen für dieses Problem. Die erste Lösung besteht darin, ein benutzerdefiniertes Überprüfungs-Steuerelement zu schreiben. Die zweite Lösung besteht darin, das Calendar-Steuerelement so zu erweitern, dass Sie es mit den integrierten Überprüfungs-Steuerelementen verwenden können. Dieser Artikel beschreibt die zweite Lösung. Informationen zum Schreiben eines benutzerdefinierten Überprüfungs-Steuerelements finden Sie im Abschnitt "Informationsquellen" in diesem Artikel.

Hinweis: Dieser Artikel beschreibt die Erweiterung des Calendar-Steuerelements nur für die serverseitige Überprüfung. Damit eine clientseitige Überprüfung erfolgen kann, werden die Überprüfungs-Steuerelemente mit der Value-Eigenschaft des entsprechenden HTML-Steuerelements verknüpft. Da zum Erstellen des Calendar-Steuerelements viele HTML-Steuerelemente verwendet werden, gibt es kein einzelnes HTML-Steuerelement, das den ausgewählten Wert für das Calendar-Steuerelement enthält, weshalb die clientseitige Überprüfung nicht auf das Calendar-Steuerelement anwendbar ist.

Erweitern des Calendar-Steuerelements

Um das Calendar-Steuerelement zu erweitern, können Sie eine von dem vorhandenen Calendar-Steuerelement ererbte Klasse erstellen. Damit das Steuerelement mit den Überprüfungs-Steuerelementen interagieren kann, fügen Sie das ValidationProperty-Attribut und eine Eigenschaft hinzu, die das ausgewählte Datum in einem Format zurückgibt, das für die Überprüfungs-Steuerelemente geeignet ist.

Um die Verwendung des Steuerelements mit dem RequiredFieldValidator-Steuerelement zu ermöglichen, gibt Ihr Code eine leere Zeichenfolge zurück, wenn die SelectedDate-Eigenschaft auf "01-Jan-0001" gesetzt wird, weil dieses Datum zurückgegeben wird, wenn kein Datum ausgewählt wird. In allen anderen Fällen wird eine Zeichenfolge zurückgegeben, die das Datum im Format JJJJ/MM/TT zurückgibt, das vom RangeValidator-Steuerelement verwendet werden kann.
  1. Erstellen Sie in Microsoft Visual Studio eine neue Visual C# ASP.NET-Webanwendung.
  2. Fügen Sie im Menü Projekt eine neue Klasse zu Ihrer Anwendung hinzu:
    using System;
    using System.Web.UI;
    using System.ComponentModel;
    
    namespace ExtendCalendar
    {
    	[ValidationProperty("Text")]
    	public class VCalendar : System.Web.UI.WebControls.Calendar
    	{
    		public string Text 
    		{
    			get
    			{
    				string dateString = this.SelectedDate.ToString("yyyy/MM/dd");
    				if (dateString=="0001/01/01") return "";
    				return dateString;
    			}
    		}
    	}
    }
    Hinweis: Im Datumsformat muss "MM" groß geschrieben sein, damit der Monat zurückgegeben wird, da beim klein geschriebenen "mm" Minuten zurückgegeben werden. Die Rückgabe des Datums in diesem Format ermöglicht Zeichenfolgenvergleiche zum Überprüfen des Bereichs.
  3. Speichern Sie die Datei und erstellen Sie die Anwendung: klicken Sie im Menü Erstellen auf Erstellen.

Hinzufügen des Steuerelements zu einem Webformular

Um ein benutzerdefiniertes Steuerelement zu einem Webformular hinzuzufügen, müssen Sie oben in der Webseite eine Referenz hinzufügen. Dadurch werden der Namespace und der Tag definiert, die Sie in der HTML verwenden.
  1. Fügen Sie eine .aspx-Seite zu dem Projekt hinzu.
  2. Verwenden Sie oben in der Seite die <%@ register %>-Direktive, um das Steuerelement zu registrieren.
    <%@ Register TagPrefix="Custom" Namespace="ExtendCalendar" Assembly="csExtendCalendar" %>
    Sie müssen den Namespace auf den in der Klassendatei verwendeten Namespace und den Assemblynamen auf den Projektnamen Ihrer Anwendung ändern.
  3. Fügen Sie ein VCalendar-Steuerelement in den <FORM runat=server></FORM>-Tag ein:
    <CUSTOM:VCALENDAR id="MyCalendar" runat="server"></CUSTOM:VCALENDAR>
    Wechseln Sie zur Entwurfsansicht. Das Calendar-Steuerelement müsste auf dem Webformular erscheinen. Wenn nicht, überprüfen Sie, ob die Einstellungen für Namespace und Assembly korrekt sind.

Verknüpfen mit Überprüfungs-Steuerelementen

Bei diesem Schritt werden RangeValidator- und ein RequiredFieldValidator-Steuerelement zu dem Webformular hinzugefügt und mit dem VCalendar-Steuerelement verknüpft.
  1. Fügen Sie ein RangeValidator- und ein RequiredFieldValidator-Steuerelement zu dem Webformular hinzu und verknüpfen Sie sie mit dem VCalendar-Steuerelement, indem Sie ihre Eigenschaften wie folgt setzen. RangeValidator:
    ControlToValidate: MyCalendar
    ErrorMessage: Datum muss zwischen 10/1/2001 und 10/31/2001 liegen
    MinimumValue: 2001/10/01
    MaximumValue: 2001/10/31
    EnableClientScript: False
    RequiredFieldValidator:
    ControlToValidate: MyCalendar
    Fehlermeldung: Bitte geben Sie ein Datum ein!
    EnableClientScript: False
  2. Fügen Sie eine Webformular-Schaltfläche zu der Seite hinzu.

Testen der Webseite

  1. Erstellen Sie die Anwendung: klicken Sie im Menü Erstellen auf Erstellen.
  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Webformular und klicken Sie anschließend auf In Browser anzeigen.
  3. Es sollte eine Seite mit einem Calendar-Steuerelement und einer Schaltfläche angezeigt werden. Klicken Sie auf die Schaltfläche. Die RequiredFieldValidator-Meldung sollte angezeigt werden.
  4. Wählen Sie ein Datum außerhalb des Bereichs 01. Okt. 2001 bis 31. Okt. 2001 aus und klicken Sie anschließend auf die Schaltfläche. Die RequiredFieldValidator-Meldung sollte verschwinden und durch die RangeValidator-Meldung ersetzt werden.
  5. Wählen Sie ein Datum im Bereich 01. Okt. 2001 bis 31. Okt. 2001 aus und klicken Sie anschließend auf die Schaltfläche. Es sollte keine der Überprüfungs-Meldungen angezeigt werden.

Informationsquellen

Lesen Sie das Hilfethema "Web Forms Validation". Um nach diesem Thema zu suchen, geben Sie Web Forms Validation in die Suchfunktion der Hilfedokumentation ein und wählen Sie Nur in Titeln suchen aus.


Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft ASP .NET (Bestandteil von .NET-Framework)
Keywords: 
kbhowto kbhowtomaster kbctrlcreate kbservercontrols KB310145
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

SPRACHE AUSWÄHLEN