Zusammenfassung: Detaillierte Erläuterungen zur Verwendung der ASP+ -Verifizierungs -Websteuerung.
Inhaltsverzeichnis
Kurze Einführung
Erste Schritte
Wann passiert es?
Überprüfungssequenz auf der Serverseite
Kundenüberprüfung
Effektive Regeln und nützliche Fehlerinformationen
Aktiviert, sichtbare und angezeigte Eigenschaften der Eigenschaften
CustomValidator Control
Welche Kontrollen können überprüft werden?
Ende
---------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------
Kurze Einführung
In diesem Artikel werden die Arbeitsmethode der ASP+ -Verifizierung im Detail erläutert. Wenn Sie eine komplexe Seite generieren möchten, die die Überprüfungsregelung enthält, oder das Verifizierungs -Framework erweitern, wird empfohlen, diesen Artikel zu lesen. Wenn Sie lernen möchten, die Überprüfungsregelung zu verwenden, oder zu entscheiden, ob die Überprüfungsregelung verwendet werden soll, finden Sie in "ASP+ Benutzer Eingabetaste (Englisch)".
Erste Schritte
Wir wissen, dass es wichtig ist, die Überprüfung während des gesamten ASP+ -entwicklungsprozesses zu verstehen. Schauen Sie sich die meisten kommerziellen Websites von heute an, Sie werden feststellen, dass es auf diesen Websites viele Formen gibt, die offensichtlich durch Ausführen einer großen Anzahl handgeschriebener Code ausgeführt werden. Das Schreiben von Verifizierungscode ist kein interessanter Job. Wenn Sie einen Code schreiben, um die Datentabelle anzuzeigen oder Diagramme dynamisch zu generieren, kann dies sehr attraktiv sein, aber niemand kann mit seinen Kollegen bestätigen, dass diese "coole" Methode den leeren Wert im Feld Name verbieten kann.
Aus anderen Gründen ist auch die Überprüfung der Webanwendungen sehr problematisch. HTML 3.2 hat viele Einschränkungen für den Inhalt, den Sie steuern oder Feedback vom Benutzer erhalten können einen Ton machen. Die Verwendung von Browser -Skript kann eine leistungsfähigere Überprüfung erzeugen. Diese Methode ist jedoch schwer zu bestätigen, da der Browser des Kunden nicht unbedingt ein Skript ist und böswillige Benutzer es umgehen können. Um die Sicherheit der Website zu gewährleisten, müssen daher die gleiche Inspektion des Servers durchgeführt werden.
Bei der Entwicklung von ASP+ist es unsere ursprüngliche Absicht, nur eine Steuerung zur Verarbeitung zu verwenden. Aber als es entworfen wurde, stellte ich fest, dass dieses Wunsch nicht erreicht werden konnte. Wir haben eine große Anzahl von Dateneingangsformularen untersucht, um eine Lösung zu finden, die auf möglichst viele Formen angewendet werden kann. Wir haben festgestellt, dass die Dateneingabetabelle viele interessante Funktionen aufweist:
Obwohl Fehlerinformationen oder Icons häufig an die Eingangselemente nebeneinander liegen, befinden sie sich fast immer in verschiedenen Zellen der Tabelle.
Auf der Seite gibt es oft einen Bereich, um alle Fehler zusammenzufassen.
Viele Websites enthalten Client -Skripte, um schnelleres Feedback zu geben und gleichzeitig vergeblich zu verhindern.
Viele Websites, die Client -Skripte enthalten, zeigen Informationsfelder an, wenn ein Fehler vorliegt.
Die Texteingabe wird nicht nur überprüft, sondern auch die Schaltfläche Drop -Down -Liste und Einzelauswahl wird überprüft.
Wenn ein Feld leer ist, zeigt die Website normalerweise verschiedene Informationen oder Symbole an, wenn der Eintrag ungültig ist.
Viele wirksame Prüfungen können durch häufig verwendete Ausdrücke gut ersetzt werden.
Die Überprüfung basiert normalerweise auf Vergleichsergebnissen zwischen zwei Eingaben.
90% oder mehr als 90% der Überprüfungsaufgaben sind einige gängige Operationen, z. B. den Namen des Namens oder die Postleitzahl. Die meisten Websites scheinen diese Aufgaben noch zu wiederholen.
Da der Unterschied zwischen Standorten normalerweise zu groß ist, kann eine perfekte Lösung nicht erhalten werden, um alle Überprüfungsaufgaben jeder Stelle zu erledigen.
Unter Berücksichtigung aller oben genannten Situationen umfassen die endgültigen Lösungen fünf Überprüfungsgerätesteuerungen, Validierungen -Systeme und Integration in Seitenobjekte. Gleichzeitig ist es offensichtlich, dass die Lösung erweitert werden muss und eine API erforderlich ist, um auf dem Client und dem Server zusammenzuarbeiten.
Wir fanden heraus, dass wir während der verschiedenen Forschungsüberprüfungen eine größere Toolbox benötigen. In den meisten Komponentenumgebungen, wie Microsoft & Reg; Glücklicherweise gibt es eine magische Vererbung in Microsoft & Reg;
Die meisten dieser Kontrollen werden in ihrem öffentlichen Eltern -Level -Basisvalidator implementiert. Sie können auch verschiedene Aufgaben vom Basisvalidator oder anderen Kontrollen ausführen. Selbst wenn Basisvalidator zu faul ist, um seine eigenen Textattribute zu erreichen, wird es von Labelattributen geerbt.
Wann passiert es?
Es ist sehr effektiv, die Ereignissequenz bei der Verarbeitung der Seite der Seite der Websteuerung zu verstehen. Wenn eine Überprüfungsbedingung optional ist, müssen Sie genau verstehen, wann Client und Server überprüft werden. Wenn Sie selbst eine Verifizierungsroutine schreiben möchten, ist es möglicherweise sehr zeitlich, dass sie oder Nebenwirkungen ausgestattet sind. Gleichzeitig ist es auch wichtig, den Zeitpunkt der Aufruf von Überprüfungsroutine zu verstehen.
Schauen wir uns zunächst den Server an.
Überprüfungssequenz auf der Serverseite
Es ist wichtig, die Gültigkeitsdauer der Seite zu verstehen. Wenn Sie es gewohnt sind, das Formular in den visuellen Basis- oder ähnlichen funktionalen Client -Tools zu verarbeiten, müssen Sie eine bestimmte Zeit zum Verständnis verbringen. Alle Objekte auf der Seite und Seite sind bei der Interaktion mit Benutzern nicht effektiv, obwohl dies manchmal gleich ist.
Das Folgende ist eine vereinfachte Ereignissequenz, wenn Sie zum ersten Mal eine Seite besuchen:
Erstellen Sie eine Seite und ihre Steuerung basierend auf der ASPX -Datei.
Auslösen des Ereignisses Page_load.
Seiten- und Steuerattribute werden in einem versteckten Feld gespeichert.
Seiten und Steuerelemente werden in HTML konvertiert.
Alles wegwerfen.
Wenn der Benutzer nun auf eine Schaltfläche oder eine ähnliche Steuerung klickt, kehrt er zum Server zurück und führt dann eine ähnliche Ereignissequenz aus. Diese Sequenz wird als Rücklaufsequenz bezeichnet:
Erstellen Sie eine Seite und ihre Steuerung basierend auf der ASPX -Datei.
Stellen Sie die Seite und Steuerattribute aus dem versteckten Feld wieder her.
Geben Sie die Aktualisierungsseitensteuerung gemäß dem Benutzer ein.
Auslösen des Ereignisses Page_load.
Auslösen Änderungen von Benachrichtigungsereignissen.
Seiten- und Steuerattribute werden in einem versteckten Feld gespeichert.
Seiten und Steuerelemente werden in HTML konvertiert.
Alles wieder wegwerfen.
Warum halten wir nicht alle Objekte im Speicher? Da mit ASP+ festgelegte Websites nicht die sehr große Anzahl von Benutzern verarbeiten kann. Daher behält der Speicher des Servers nur den Inhalt bei, der sofort verarbeitet wird.
Wann ist der Server -Side -Verifizierung? Wenn Sie zum ersten Mal Seiteninformationen erhalten, wird die Server -SIDE -Überprüfung überhaupt nicht durchgeführt. Die meisten Endbenutzer sind sehr ernst.
In der Rückkehrereignissequenz wird die Überprüfung zwischen Schritt 3 und Schritt 4 durchgeführt. Mit anderen Worten, die Überprüfung erfolgt nach den Datenladensteuerungsattributen des Benutzers, jedoch vor der meisten Codeausführung. Dies bedeutet, dass beim Schreiben von Benutzerereignissen normalerweise die Überprüfung verwendet werden kann. Unter normalen Umständen möchten Sie dies tun.
Der Nachteil der Überprüfung in diesem Moment lautet: Wenn Sie einige Attribute ändern möchten, die die Überprüfung durch Programmierung beeinflussen, ist es zu spät. Sie werden beispielsweise feststellen, dass Sie vor der Verarbeitung der Seite keinen Effekt sehen, wenn Sie den Code verwenden, um die Attribute der Überprüfungsregelung zu aktivieren oder zu deaktivieren, oder die Überprüfungsregelung zu ändern. Dieses Problem kann durch die folgenden zwei Methoden vermieden werden:
Ändern Sie das Attribut vor Überprüfung.
Überprüfen Sie die Steuerung nach der Attributänderung.
Beide Methoden müssen effektive Verifizierungsattribute und -methoden auf dem Seitenobjekt verwenden.
Page -API
Seitenobjekte enthalten einige wichtige Attribute und Methoden, die sich auf die Server -Side -Überprüfung beziehen. Tabelle 1 fasst diese Attribute und Methoden zusammen:
Tabelle 1. Die Attribute und Methoden des Seitenobjekts
Attribut oder Methode Beschreibung
Das Isvalid -Attribut ist das nützlichste Attribut. Dieses Attribut kann überprüfen, ob das gesamte Formular effektiv ist. Diese Überprüfung wird normalerweise vor der Aktualisierung der Datenbank durchgeführt. Nur alle Objekte der Validatoren sind gültig, das Attribut ist wahr und der Wert wird nicht im Cache gespeichert.
Validatoren schreibt die Erfassung aller Verifizierungsobjekte dieser Seite zu. Dies ist eine Sammlung von Objekten, die die Ivalidator -Schnittstelle implementieren.
Die Wertungsmethode ruft bei der Überprüfung eine Methode auf. Die Standardausführungsmethode auf dem Seitenobjekt besteht darin, sich jedem Überprüfungsgerät zu wenden und das Überprüfungsgerät selbst zu bewerten.
Die Validators -Sammlung ist für viele Aufgaben sehr nützlich. Dieser Satz ist eine Sammlung von Objekten, die die Ivalidator -Schnittstelle implementieren. Der Grund, warum ich das Objekt verwende, ist nicht die Kontrolle des Steuerelements, da das Seitenobjekt nur auf die Ivalidator -Schnittstelle achtet. Da alle Überprüfungen normalerweise verwendet werden, um einige visuelle Steuerelemente von Ivalidator zu erreichen, sollte jeder in der Lage sein, ein beliebiges Verifizierungsobjekt zu verwenden und das Verifizierungsobjekt zur Seite hinzuzufügen.
Die Ivalidator -Schnittstelle enthält die folgenden Attribute und Methoden:
Tabelle 2. Die Attribute und Methoden der Ivalidator -Schnittstelle
Attribut oder Methode Beschreibung
Das Isvalid -Attribut wies darauf hin, ob der durch ein separate Verifizierungsobjekt durchgeführte Validitätstest bestanden wurde. Sie können den Wert nach der Überprüfung manuell ändern.
Das ErrorMessage -Attribut führt den Fehler ein, um das zu überprüfende Objekt und die Fehler, die dem Benutzer angezeigt werden können, zu überprüfen.
Die Validierungsmethode wird auf die Gültigkeit des Verifizierungsobjekts überprüft, um den Isvalid -Wert zu aktualisieren.
Sie können diese Schnittstelle verwenden, um einige interessante Aufgaben auszuführen. Verwenden Sie beispielsweise den folgenden Code (z. B. das in C#gezeigte Beispiel), um die Seite auf einen effektiven Zustand zurückzusetzen:
Ivalidatorwert;
Foreach (val in validatoren) {
valueValid = true;
}
Verwenden Sie den folgenden Code, um die gesamte Verifizierungssequenz erneut auszusetzen:
Ivalidatorwert;
Foreach (val in validatoren) {
Val.Validate ();
}
Wenn Sie eine Beta -1 -Ausgabe oder höhere Versionen haben, können Sie auch die Wertungsmethode für das Seitenobjekt aufrufen, damit die gleiche Aufgabe erledigt werden kann. Um vor der Überprüfung einige Änderungen vorzunehmen, kann die Wertschöpfungsmethode abgedeckt werden. In diesem Beispiel wird eine Seite angezeigt, die das Überprüfungsgerät enthält, das gemäß dem Wert des Kontrollkästchen geöffnet oder ausgeschaltet wird:
Öffentliche Klasse Bedingung: Seite {
public htmlinputcheckbox kkssamaseas;
Public ResearchfieldValidator RfvalshipAddress;
Protected Override void validate () {) {)
// Überprüfen Sie einfach die Lieferadresse (wenn sich von der Zahlungsadresse unterscheidet)
Bool Enableship =!
rfvalshipAddress.Enabled = Enableship;
// Jetzt die Überprüfung durchführen
Base.Validate ();
}
}
Kundenüberprüfung
Wenn Ihre Seite durch Client -Überprüfung aktiviert ist, tritt während der Hin- und Rückfahrt eine völlig andere Ereignissequenz auf. Die Überprüfung des Kunden verwendet den Client JScript & Reg; Die Überprüfung erfordert keine binären Komponenten.
Obwohl die Standardisierung der Jscript -Sprache gut gemacht ist, hat das in der HTML -Dokumentation im Browser (DOM) verwendete Dokumentobjektmodell (DOM) keine weit verbreiteten Standards. Daher wird die Kundenüberprüfung nur in den Internet Explorer 4.0 und höheren Versionen durchgeführt, da das verifizierte Objekt der Internet Explorer DOM ist.
Aus der Perspektive des Servers bedeutet die Überprüfung des Clients nur, dass die Überprüfungsregelung unterschiedliche Inhalte an HTML sendet. Zusätzlich ist die Vorfallsequenz genau die gleiche. Der Server -Side -Check wird weiterhin durchgeführt. Obwohl es überflüssig erscheint, ist es sehr wichtig, weil:
Einige Überprüfungskontrollen unterstützen das Client -Skript möglicherweise nicht. Es gibt ein gutes Beispiel: Wenn Sie gleichzeitig die Funktionen für CustomValidator- und Serverüberprüfungen verwenden möchten, gibt es jedoch keine Client -Überprüfungsfunktion.
Sicherheitsvorkehrungen. Einige Leute können leicht eine Seite mit einem Skript erhalten und dann die Seite deaktivieren oder ändern. Sie sollten Ihr Skript nicht verwenden, um zu verhindern, dass schlechte Daten in Ihr System eingeben, sondern nur, damit Benutzer schnelleres Feedback erhalten. Wenn Sie CustomValidator verwenden möchten, sollten Sie daher keine Client -Überprüfungsfunktion angeben, ohne dass die Überprüfungsfunktionen der Server entsprechend sind.
Jede Überprüfungsregelung kann sicherstellen, dass ein Standard -Client -Skriptblock an die Seite gesendet wird. Tatsächlich ist dies nur ein kleiner Teil des Codes, der einen Verweis auf den Code in der Skriptbibliothek webuivalidation.js enthält. Diese Skriptbibliotheksdatei enthält alle vom Client verifizierten Logik.
Über Skriptbibliothek
Da sich die Überprüfung des Web -Kontrollskripts in der Skriptbibliothek befindet, ist der von allen Clients verifizierte Code nicht erforderlich, um ihn direkt an die Seite zu senden, obwohl er an der Oberfläche erfolgt. Die Hauptreferenzen der Hauptskriptdatei ähneln Folgendes:
<script Language = JavaScript
src =/_ Aspx/1.0.9999/script/webuivalidation.js> </script>
Standardmäßig wird die Skriptdatei im Standard -Root -Verzeichnis im _aspx -Verzeichnis installiert und verwendet einen aufgerufenen Anweisungen mit Skript, das mit einer positiven diagonalen Linie beginnt. Die Referenz zeigt, dass jedes einzelne Objekt nicht die Skriptbibliothek einbeziehen muss und alle Seiten auf demselben Computer dieselbe Datei verweisen können. Sie werden feststellen, dass es auf diesem Pfad auch eine Versionsnummer der öffentlichen Sprache gibt, damit verschiedene Laufzeitversionen auf demselben Computer ausgeführt werden können.
Wenn Sie sich Ihr Standard -Virtual Root -Verzeichnis ansehen, finden Sie die Datei und den Inhalt anzeigen. Die Position dieser Dateien ist in der Datei config.web angegeben. Config.web -Datei ist eine XML -Datei für die meisten ASP+ -Inneneinstellungen. Das Folgende ist die Definition der Position in dieser Datei:
<Webcontrols
ClientscriptsLocation =/_ Aspx/{0}/script/
/>
Ermutigen Sie Sie, das Skript zu lesen, damit Sie die Ereignisse, die ausführlich auftreten, verstehen können. Es wird jedoch empfohlen, diese Skripte nicht zu ändern, da ihre Funktionen eng mit bestimmten Laufzeitversionen verknüpft sind. Wenn die Version aktualisiert wird, müssen diese Skripte möglicherweise auch entsprechend aktualisiert werden. Wenn bestimmte Projekte geändert werden müssen, sichern Sie zuerst diese Skripte und richten Sie Ihr Projekt auf die Sicherungsdatei hin, die Methode besteht darin, eine private config.Web -Datei zu verwenden, um die Position dieser Dateien zu ersetzen. Wenn die Zeichenfolge den Befehl format {0} enthält, ersetzt die Versionsnummer die Anweisung, wenn die Laufzeitversionsnummer ersetzt wird. Es ist am besten, diese Position in eine relative Referenz oder absolute Referenz zu ändern.
Deaktivieren Sie die Kundenüberprüfung
Manchmal möchten Sie Kunden möglicherweise nicht überprüfen. Wenn die Anzahl der Eingabefelder gering ist, ist die Client -Überprüfung möglicherweise nicht sehr nützlich. Schließlich müssen Sie eine Logik haben, die jedes Mal einen Rund -Trip -Server erfordert. Sie werden feststellen, dass sich die dynamischen Informationen über den Kunden negativ auf Ihr Layout auswirken.
Verwenden Sie zur Deaktivierung der Client -Überprüfung die Seite "Anweisungen" clientTarget = Downlevel. Diese Anweisung ähnelt dem Beginn der ASPX -Datei:
< %@Page Language = C# ClientTarget = Downlevel %>
Der Standardwert dieser Anweisung ist automatisch und zeigt an, dass Sie nur den Client der Microsoft Internet Explorer 4.0 oder höher verifizieren.
Hinweis: Leider ist in Beta 1 diese Anweisung nicht nur zur Überprüfung deaktiviert, und gleichzeitig verwenden alle Web -Steuerelemente HTML 3.2 -Tags zum Verarbeiten, was möglicherweise unerwartete Ergebnisse erzielt. Die endgültige Version bietet eine bessere Möglichkeit, dieses Problem zu kontrollieren.
Client -Ereignissequenz
Diese Sequenz ist eine Ereignissequenz, die auftritt, wenn die Seite die Client -Überprüfung enthält:
Beim Laden des Browsers auf der Seite müssen Sie jede Überprüfungsregelung initialisieren. Diese Steuerelemente werden als <Pan> -Marke gesendet, und ihre HTML -Funktionen sind den Funktionen auf dem Server am nächsten. Am wichtigsten ist, dass alle Eingabelemente, auf die das Verifizierungsgerät verwiesen wird, zu diesem Zeitpunkt "gehängt" werden. Das referenzierte Eingabeelement ändert sein Client -Ereignis, um die Überprüfungsroutine beim Eingeben der Änderung aufzurufen.
Der Code in der Skriptbibliothek wird ausgeführt, wenn der Benutzer die Registerkarte Taste verwendet, um zwischen jedem Feld zu wechseln. Wenn ein bestimmtes unabhängiges Feld geändert wird, werden die Überprüfungsbedingungen revaluiert und das Überprüfungsgerät bei Bedarf sichtbar oder unsichtbar.
Wenn der Benutzer versucht, das Formular einzureichen, werden alle Überprüfungen bewertet. Wenn all diese Verifizierungen wirksam sind, wird das Formular an den Server übermittelt. Wenn an einem oder mehreren Stellen ein Fehler vorliegt, tritt die folgende Situation auf:
Die Einreichung wurde abgesagt. Das Formular wird nicht an den Server übermittelt.
Alle ungültigen Überprüfungen sind sichtbar.
Wenn eine Überprüfungszusammenfassung ShowSummary = true enthält, werden alle Fehler aus der Überprüfung der Überprüfung erfasst und der Inhalt mit diesen Fehlern aktualisiert.
Wenn eine Überprüfungszusammenfassung ShowMessageBox = true enthält, sammelt sie Fehler und zeigt diese Fehler im Informationsfeld des Clients an.
Weil die Client -Überprüfungsregelung beim Eingeben oder wann ausgeführt wird. Bitte beachten Sie, dass diese Überprüfungssteuerungen nach der Einreichung weiterhin auf dem Server revaluiert werden.
Client -API
Es gibt eine kleine API, die für den Client verwendet werden kann, um verschiedene Effekte in Ihrem eigenen Client -Code zu erzielen. Da einige Routine nicht versteckt werden können, können Sie theoretisch den Kunden verwenden, um alle vom Client definierten Variablen, Merkmale und Funktionen zu überprüfen. Viele von ihnen können jedoch geändert werden. Das Folgende fasst das Kundenobjekt zusammen, das Sie zur Verwendung ermutigen.
Tabelle 3. Client -Objekt
Namenstyp Beschreibung
Page_isvalid boolean variable wies darauf hin, ob die Seite derzeit gültig ist. Überprüfen Sie die Skripte, die die Variable immer am neuesten halten.
Page_validator Element Array Dies ist ein Array, das alle Überprüfungen auf der Seite enthält.
Page_validationactive boolesche Variablen geben an, ob sie überprüft werden sollen. Stellen Sie diese Variable auf False ein, kann durch Programmierung geprüft werden.
Isvalid Boolen Attribute Jedes Client -Überprüfungsgerät verfügt über die Eigenschaft, in der darauf hingewiesen wird, ob das Überprüfungsgerät derzeit gültig ist. Bitte beachten Sie, dass dieses Attribut in der PDC -Version mit isvalid gemischt wird.
Umgehung der Kundenüberprüfung
Eine Aufgabe, die Sie häufig ausführen müssen, ist das Hinzufügen der Schaltfläche "Abbrechen" oder Navigation auf der Seite. In diesem Fall möchten Sie auch dann auch, wenn auf der Seite Fehler auf der Seite sind, die Schaltfläche auch verwenden, um die Seite einzureichen. Da das Client -Taste Onclick -Ereignis vor dem ONSUBMIT -Ereignis des Formulars erfolgt, kann es vermeiden, eine Inspektion und Umgehung der Überprüfung einzureichen. Im Folgenden wird angezeigt, wie die HTML -Bildsteuerung als "Abbrechen" -Taste verwendet wird, um die Aufgabe zu erledigen:
<Eingabe type = Bild runat = Server
Wert = Abbrechen
Onclick = page_validationactive = false;
ONSERVERCLIGHT = CMDCANCEL_CLICK>
Verwenden Sie die Schaltfläche oder das ImageButton -Steuerelement, um eine Verwirrung auszuführen, da das Onclick -Ereignis davon ausgeht, dass es sich um ein Server -Ereignis mit demselben Namen handelt. Sie sollten dieses Ereignis im Client -Skript festlegen:
<ASP: ImageButton Runat = Server ID = Cmdimgcancel
AlternateText = Abbrechen
Onclick = cmdcancel_click/>
<Skript Sprache = JavaScript>
document.all [cmdimgcancel] .onclick =
neue Funktion (page_validationactive = false;);
</script>
Eine andere Methode zur Lösung dieses Problems besteht darin, bestimmte Einstellungen der Schaltfläche "Abbrechen" so festzulegen, dass das Einreichungsereignis bei der Rückkehr nicht das Einreichungsereignis ausgelöst wird. HTMlinputbutton- und Linkbutton -Kontrollen sind die Beispiele.
Spezialeffekt
Eine weitere häufige Anforderung besteht darin, dass zusätzlich zu Fehlerinformationen, die vom Überprüfungsgerät selbst angezeigt werden, einige andere Effekte benötigt werden. In diesem Fall muss eine Änderung, die Sie vornehmen, gleichzeitig auf dem Server oder Client durchgeführt werden. Angenommen, Sie müssen ein Etikett hinzufügen, um die Farbe zu ändern, je nachdem, ob die Eingabe gültig ist. Im Folgenden wird diese Aufgabe auf dem Server implementiert:
Öffentliche Klasse ChangeColorPage: Seite {
Public Label LBLZIP;
öffentliche RegulaxpressionValidator -Wert;
Protected Override void Overad (eventArgs e) {{{{{{{{
LBLZIP.FORECOLOR = VALZIP.ISVALID?
}
}
Alle oben genannten Methoden sind perfekt, aber solange Sie die obige Überprüfung ändern, werden Sie feststellen, dass es sehr inkonsistent aussieht, wenn Sie dieselbe Operation auf dem Client ausführen. Mit dem Überprüfungsframework können Sie viele solche doppelten Effekte vermeiden, aber es kann nicht andere Effekte vermeiden, die Sie gleichzeitig auf Client und Server erzielen müssen. Das Folgende ist ein Fragment, das dieselbe Aufgabe im Client ausführt:
<ASP: Etikett ID = LBLZIP RUNAT = Server
text = sottescode:/>
<ASP: Textbox ID = TXTIZIP RUNAT = Server
onchange = txtZiponChange ();
<ASP: regelmäßigxpressionValidator ID = Valzip Runat = Server
ControlToValidate = txtZIP
ErrorMessage = Ungültige Postkodex
ValidationXpression = [0-9] {5} /> <br>
<Skript Sprache = JavaScript>
Funktion txtziponchange () {{) {
// Wenn sich die Client -Überprüfung nicht in der Aktivität befindet, führt sie keinen Betrieb aus
IFOF (page_validators) == undefiniert) return;
// Ändern Sie die Farbe des Etiketts
LBLZIP.Style.Color = Valzip.isvalid?
}
</script>
Beta 1 Client -API
Für die Beta 1 -Ausgabe werden einige Funktionen, die aus dem Client -Skript aufgerufen werden können, andere Situationen verursachen.
Tabelle 4. Funktion vom Client -Skript -Anruf
Name Beschreibung
ValidatorValidat (VAL) verwendet ein Client -Verifizierungsgerät als Eingabe. Lassen Sie das Überprüfungsgerät die Eingabe überprüfen und die Anzeige aktualisieren.
Validierable (val, aktivieren) erhalten Sie ein Client -Überprüfungsgerät und einen booleschen Wert. Aktivieren oder deaktivieren Sie das Client -Überprüfungsgerät. Wenn es deaktiviert ist, wird das Client -Überprüfungsgerät nicht bewertet und der Client -Validator ist immer gültig.
ValidatorHookupControl (Steuerung, VAL) erhielt ein Eingangs -HTML -Element und ein Client -Überprüfungsgerät. Ändern oder erstellen Sie das Änderungsereignis des Elements, damit das Überprüfungsgerät während der Änderung aktualisiert werden kann. Diese Funktion eignet sich für angepasste Überprüfungen basierend auf mehreren Eingangswerten.
Sein besonderer Zweck ist es, das Verifizierungsgerät zu aktivieren oder zu deaktivieren. Wenn Sie überprüfen möchten, ob Sie nur unter bestimmten Umständen wirksam werden, müssen Sie möglicherweise den Aktivierungsstatus gleichzeitig auf dem Server und den Clients ändern. Andernfalls werden Sie feststellen, dass der Benutzer die Seite nicht einreichen kann.
Das folgende Beispiel sowie ein Feld.
Öffentliche Klasse Bedingung: Seite {
public htmlinputcheckbox kkssamaseas;
Public ResearchfieldValidator RfvalshipAddress;
Protected Override void validate () {) {)
Bool Enableship =!
rfvalshipAddress.Enabled = Enableship;
Base.Validate ();
}
}
Das Folgende ist der Code des Client -Äquivalents:
<Eingabetyp = CheckBox Runat = Server ID = ChkSameas
Onclick = onchangesameas ();> Das Gleiche wie die Zahlungsadresse <br>
<Skript Sprache = JavaScript>
Funktion onchangeSameas () {
var Endeship =!
Validatorableable (rfvalshipAddress, Enableship);
}
</script>
Effektive Regeln und nützliche Fehlerinformationen
Jedes Verifizierungsgerät zeigt spezifische Fehlerinformationen zu bestimmten Bedingungen in bestimmten Steuerelementen an. Es gibt einige Regeln, die bestätigen, ob es gültig ist.
Alle leeren Überprüfungen (mit Ausnahme des erforderlichen Fieldvalidators) werden als gültig angesehen. Wenn ein leerer Wert ungültig ist, benötigen Sie normalerweise einen erforderlichen FieldValidator und einen anderen Verifizierer. Sie müssen dies tun, denn im Allgemeinen möchten Sie immer verschiedene Fehlerinformationen zum leeren Überprüfungsgerät und zur Effektivität anzeigen. Sie können auch unklare Informationen verwenden, z. B. "Sie müssen einen Wert eingeben, und dieser Wert muss zwischen 1 und 10 liegen".
Ein weiterer spezieller Regeln, der verwendet wird, wenn das Eingabefeld nicht in einen angegebenen Datentyp konvertiert werden kann, bezieht sich auf den Vergleichevalidator und den RangeValidator. Der Validitätsbewertungsprozess des Vergleichsvalidators von ControlTocompare gibt an, dass der nachstehend beschriebene Prozess der Gültigkeitsbewertung angezeigt wird:
Wenn das von ControlToVovalidat verwiesene Eingangsfeld leer ist, ist es effektiv.
Wenn das von ControlToVovalida verwiesene Eingangsfeld nicht in den erforderlichen Datentyp konvertiert werden kann, ist es ungültig.
Wenn das von ControlTocompare verwiesene Eingangsfeld nicht in den erforderlichen Datentyp konvertiert werden kann, ist es gültig.
Das Eingangsfeld wird in den erforderlichen Datentyp konvertiert und vergleicht.
Der dritte Schritt sieht etwas inkonsistent aus. Der Grund dafür ist, dass wenn das Verifizierungsgerät gleichzeitig die Wirksamkeit mehrerer Felder überprüft, schwierig ist, aussagekräftige Fehlerinformationen für das Verifizierungsgerät zu schreiben. Ein unabhängiges Überprüfungsgerät sollte verwendet werden, um die Fehlersituation im Feld ControlToCompare -Eingabe zu melden. Der Rangevalidator hat ähnliche Arbeitsmethoden mit maximalen und minimalen Eigenschaften.
Aktiviert, sichtbare und angezeigte Eigenschaften der Eigenschaften
Der Unterschied zwischen aktivierten, sichtbaren und angezeigten Eigenschaften des Verifizierungsgeräts ist möglicherweise nicht sehr offensichtlich.
Display = None kann verwendet werden, um anzugeben, dass das Überprüfungsgerät keinen direkten Inhalt anzeigt, aber dennoch bewertet, weiterhin die Gesamteffektivität beeinflusst und immer noch Fehler in der Zusammenfassung des Clients und des Servers einfügen kann. Für die Client -Überprüfung werden diese Werte für die Verwendung der sichtbaren Stilmerkmale oder zur Verwendung der Merkmale der Anzeigestil zum Öffnen oder Schließen des Verifizierungsgeräts bestimmt. Für die Server -SIDE -Überprüfung bedeutet Display = dynamisch, dass die Eingabe keinen Inhalt anzeigt, wenn die Eingabe gültig ist, und Display = static repräsentiert einen Speicherplatz, der sich nicht ändert. Die letzte Einstellung soll in keinen Inhalt gefaltet werden, wenn die Zelle, die nur das Überprüfungsgerät in der Tabelle enthält, gültig ist.
Warum verwenden Sie nicht nur Sactable = False, um das Verifizierungsgerät sichtbar zu machen? In ASP+hat das sichtbare Attribut der Steuerung viele Bedeutungen: Die Kontrolle von sichtbar = false wird überhaupt nicht verarbeitet oder überhaupt angezeigt. Aus dieser Bedeutung bedeutet das Sichtbare = Falsch des Verifizierungsgeräts, dass nicht nur kein Inhalt angezeigt, sondern auch nicht verwendet werden kann. Dieses Verifizierungsgerät wird nicht bewertet, die Gültigkeit der Seite nicht beeinflusst und es auch nicht in die Zusammenfassung gestellt.
Aktiviert ist neutral. In den meisten Fällen ist der Effekt von aktiviert = falsch und sichtbar = Falsch ist genau der gleiche. In der Beta 1 -Ausgabe oder einer höheren Version gibt es einen wichtigen Unterschied: Bei der Client -Überprüfung wird das deaktivierte Überprüfungsgerät weiterhin an den Browser gesendet, es befindet sich jedoch in einem deaktivierten Zustand. Sie können die validatorable Funktion im Client -Skript verwenden, um das Verifizierungsgerät zu aktivieren.
Achten Sie bei der Verwendung von sichtbar oder aktiviert, um zu steuern, ob dies überprüft werden soll, auf die Bestellung auf dem obigen Server. Oder ändern Sie vor der Überprüfung oder achten Sie nach der Änderung erneut. Andernfalls spiegeln ihre Isvalidwerte keine Änderungen der Attribute wider.
CustomValidator Control
Der einfachste Weg, um das Verifizierungsrahmen zu erweitern, besteht darin, die CustomValidator -Steuerung zu verwenden. Diese Steuerung kann verwendet werden, um Überprüfungen durchzuführen, dass andere Überprüfungssteuerungen nicht durchgeführt werden können. Sie können jedoch auch Überprüfungen ausführen, die auf Informationen auf dem Server zugreifen müssen (z. B. Datenbanken oder Webdienste).
Wenn der CustomValidator mit nur einer Serverüberprüfungsfunktion hinzugefügt wird, werden Sie feststellen, dass das Verifizierungsgerät nicht an der Client -Überprüfung teilnimmt. Wenn der Benutzer mit der Registerkarte Taste zwischen jedem Feld wechselt, wird der CustomValidator nicht aktualisiert und der Runde -Strip -Server muss seine Überprüfung gleichzeitig durchführen. Wenn Sie den CustomValidator verwenden möchten, um eine Prüfung durchzuführen, für die keine Informationen auf dem Server erforderlich sind, können Sie auch die ClientValidationFunction -Eigenschaft verwenden, um das Überprüfungsgerät vollständig an der Client -Überprüfung beteiligt zu haben. Angenommen, Sie bieten eine ClientValidationfunction. Tatsächlich ist es jedoch nur ein Teil der Überprüfung. Die Überprüfung der Client -Überprüfungsfunktion überschreitet die Überprüfung der Ausführung auf dem Server nicht, da Hacker die Überprüfungsfunktion einfach umgehen können.
Das Folgende ist ein einfaches Beispiel für die Verwendung von CustomValidator auf dem Client und Server. Überprüfen Sie nur, ob die Eingabe gerade ist. Lassen Sie uns die Serverfunktion (in C#) vorstellen:
{Partialive Service) {Position
versuchen {
int i = int.fromstring (Wert);
Return ((i % 2) == 0);
} Fangen {
False zurückgeben;
}
}
Das Folgende ist die Deklarationsmethode der Funktion im Client und eine Client -Überprüfungsfunktion, die dieselbe Überprüfung durchführt. Dies ist in der Regel ein Jscript -Formular, aber wenn Ihr Ziel Microsoft & Reg;
<ASP: CustomValidator ID = CustomVal2 Runat = Server
ErrorMessage = Zahlen können nicht entfernt werden!
ContrelEdalidate = txtCustomData
OnservalidationFunction = ServerValidation
clientValidationFunction = schätzt /> <br>
Datenfeld: <ASP: Textbox -ID = txtCustosData Runat = Server />
<Skript Sprache = JavaScript>
<!-
Funktion Checkkeven (Quelle, Wert) {{{{
var value = parseInt (Wert, 10);
if (isnan (val))
False zurückgeben;
Return ((Val % 2) == 0);
}
//->
</script>
Hier sind einige Vorsichtsmaßnahmen mit CustomValidator:
Ähnlich wie bei allen anderen Überprüfungskontrollen (mit Ausnahme des erforderlichen FieldFieldValidators) wird in der leeren Eingabefeld angenommen, dass der CustomValidator wirksam ist.
Wenn der ältere Browser verwendet wird oder die Client -Überprüfung geschlossen ist, kann die Client -Überprüfungsfunktion nicht aufgerufen werden. Bevor Sie die Funktion definieren, müssen Sie die Funktion des im Browser verwendeten Browsers nicht überprüfen. Sie müssen jedoch sicherstellen, dass der Browser aufgrund der Definition keine Skriptfehler verursacht. Stellen Sie sicher, dass Sie Ihren Client -Code als Annotation von HTML erstellen, wie im folgenden Beispiel gezeigt.
Zwei Parameter werden an Ihre Client -Funktion übergeben und entsprechen den an die Serverfunktion übergebenen Parametern. Das erste ist das Element des Client -Überprüfungsgeräts, und der zweite ist der vom ControlToVovalidat angegebene Steuerwert. Auf dem Client können Sie jedoch entscheiden, Parameter für die Funktion nicht zu definieren, die normal funktionieren.
Wenn Sie Beta1- oder höhere Versionen verwenden, können Sie den Kontrolltovalidat als leer halten. In diesem Modus löst die Serverfunktion immer eine runde Rip -Round -Reise aus, und die Client -Funktion wird immer jedes Mal ausgelöst, wenn Sie versuchen, sie einzureichen. Mit dieser Funktion können Sie die Steuerelemente überprüfen, die andere Methoden nicht überprüfen können, z. B. die Kontrollliste oder separate Optionspunkte. Wenn die Bedingung auf mehreren Steuerelementen basiert und der Benutzer bei der Umstellung zwischen jedem Feld auf der Seite nicht möchten, dass der Benutzer die Bedingung bewertet, können Sie diese Methode verwenden.
Eine weitere Option in der Beta 1 oder höherer Version ist das Änderungsereignis mehrerer Steuerelemente. Die Methode besteht darin, einige eingebettete Skripte hinzuzufügen, die die oben beschriebene Clientfunktion ValidatorHookupControl aufrufen.
Welche Kontrollen können überprüft werden?
Um zu ermöglichen, dass die Steuerung durch die Kontrollreferenz überprüft werden kann, muss die Steuerung die Attribute verifiziert haben. Alle verifizierten Kontrollen haben ValidationPropertyAttribute -Eigenschaften, die das Attribut anzeigen, das während der Überprüfung gelesen werden sollte. Wenn Sie Ihre eigene Kontrolle schreiben, können Sie die Attribute angeben, die durch die Bereitstellung eines davon verwendet werden sollen, damit die Kontrolle an der Überprüfung beteiligt ist.
Damit die Überprüfung normal am Client durchgeführt werden kann, muss das Attribut den Werteigenschaften des vom Client angezeigten HTML -Elements entsprechen. Viele komplizierte Steuerelemente (z. B. DataGrid und Kalender) sind den Client nicht wert und können nur auf dem Server überprüft werden. Daher können nur Kontrollen, die HTML -Elementen am nächsten liegen, an der Überprüfung teilnehmen. Darüber hinaus muss die Steuerung einen einzelnen Logikwert für den Client haben. Daher kann RadiobuttonList überprüft werden, die Kontrollkästchen jedoch nicht.
Ende
Die oben genannte Erklärung der ASP+ -Verifizierung hat möglicherweise den Inhalt überschritten, den Sie verstehen möchten. Genießen Sie es!
---------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------
Bitte verwenden Sie IE4.0 über Version 800 * 600 Ansichten auf dieser Website
& Kopie; Eigentum halten. Verwenden Sie Vorschriften.
Sammeln Sie den praktischsten Webseite Special Effect Code!