ScriptControl oder BaseValidator für ein asynchrones ASP.NET-Validator-Steuerelement überschreiben?

StackOverflow https://stackoverflow.com/questions/50330

Frage

Ich plane, ein ASP.NET-Serversteuerelement zu entwickeln, um eine asynchrone Überprüfung der Benutzernamenverfügbarkeit für neue Benutzerregistrierungen bereitzustellen.Das Steuerelement ermöglicht es einem Entwickler, es auf ein Textfeld „Benutzername“ zu verweisen, und es gibt einen Hinweis darauf, ob der Benutzername verfügbar ist oder nicht.Wie dieses Beispiel, aber ohne das klobige UpdatePanel.

Eine Design-Entscheidung, die mir Kopfschmerzen bereitet, ist die Frage, ob ich davon erben soll ScriptControl oder BaseValidator.

Durch die Implementierung als ScriptControl, kann ich die Handhabung des clientseitigen Teils vereinfachen und ihn mit einem Resx leicht lokalisieren.

Ich möchte jedoch sicherstellen, dass der Validator in Bezug auf Page.IsValid ordnungsgemäß funktioniert.Die einzige Möglichkeit, die ich kenne, ist das Überschreiben BaseValidator und umsetzen EvaluateIsValid().

Meine Frage lautet also: Wie würden Sie vorschlagen, diese Kontrolle zu strukturieren?Ist das Erben von BaseValidator der beste (einzige) Weg, den Validator-Teil richtig zu machen, oder kann ich das auf andere Weise tun?

War es hilfreich?

Lösung

Sie sollten in der Lage sein, beides zu tun, wenn Sie das implementieren IScriptControl Schnittstelle und leitet sich gleichzeitig von BaseValidator ab:

public class YourControl : IScriptControl, BaseValidator

Um die IScriptControl-Schnittstelle zu implementieren, muss Ihr Steuerelement auch über die Methoden GetScriptReferences und GetScriptDescriptors verfügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top