Autor: Dflying Chen ( http://dflying.cnblogs.com/ )
PS: Dank der Liebe aller habe ich in den zwei Monaten, in denen ich mich im Blogpark eingelebt habe, viel gelernt, viele Freunde gefunden und viele Möglichkeiten erhalten. Derzeit habe ich die Ehre, ein Atlas-Buch zu übersetzen: Foundations of Atlas: Rapid Ajax Development with ASP.NET 2.0, das voraussichtlich in drei Monaten beim People's Posts and Telecommunications Publishing House veröffentlicht wird. Daher war ich in dieser Zeit ziemlich beschäftigt und der Blog kann nicht mehr so häufig aktualisiert werden wie vor einiger Zeit. Ich bitte um Entschuldigung. Natürlich sind Freunde herzlich willkommen, weiterhin Fragen zum Thema Atlas zu diskutieren, und ich werde mein Bestes geben, sie zu beantworten.
Ich hoffe, dass ich in den nächsten zwei Monaten Spitzenleistungen bei der Übersetzung von „Foundations of Atlas“ anstreben kann, daher wird es auf jeden Fall viele Themen geben, die mit Freunden besprochen werden müssen, wie z. B. Terminologie, Übersetzungsstil usw. Vielen Dank schon mal hier!
Im vorherigen Artikel (siehe: Entwickeln der serverseitigen Extender-Steuerung von ASP.NET Atlas – Schreiben des clientseitigen Verhaltens) haben wir das clientseitige Verhalten bereits geschrieben. In diesem Artikel wollen wir es zusammenfassen und als serverseitiges Steuerelement ausführen.
Kommen Sie zuerst zur Datei ValidateUserNameProperties.cs. Diese Klasse erbt von der Basisklasse TargetControlPropertiesBase<Control>, die die Zuordnungsbeziehung zwischen Client-Eigenschaftswerten und Server-Eigenschaftswerten definiert. Gleichzeitig haben die Basisklasse TargetControlPropertiesBase<Control> und der Atlas Control Extender bereits die Arbeit des Generierens eines clientseitigen XML-Skripts für Sie erledigt. Sie müssen nur die für Ihr Verhalten erforderlichen Attribute definieren.
Fünf Attribute, CheckResultLabelID, ServiceName, MethodName, ValidMessage und InvalidMessage, sollten hinzugefügt werden. Der Einfachheit halber gebe ich nur ein Beispiel für ein Attribut
[DefaultValue("")]
[IDReferenceProperty(typeof(WebControl))]
[RequiredProperty()]
öffentliche Zeichenfolge CheckResultLabelID
{
erhalten
{
return GetPropertyStringValue("CheckResultLabelID");
}
Satz
{
SetPropertyStringValue("CheckResultLabelID", value);
}
}
Der Definition von CheckResultLabelID gehen drei Attribute voraus:
DefaultValue: Legen Sie den Standardwert dieses Attributs fest.
IDReferenceProperty: Gibt an, dass diese Eigenschaft nur die ID eines bestimmten Steuerelementtyps speichern kann.
RequiredProperty: Gibt an, dass diese Eigenschaft erforderlich ist.
Für mehrere andere Eigenschaften können Sie auf die später bereitgestellten Quelldateien verweisen.
Schauen Sie sich dann die Datei ValidateUserNameExtender.cs an. Die Hauptteile lauten wie folgt:
[Designer(typeof(ValidateUserNameDesigner))]
[ClientScriptResource("Dflying", "ValidateUserNameBehavior", "Dflying.Atlas.ControlTookit.ValidateUserName.ValidateUserNameBehavior.js")]
[Erforderliches Skript (Typ von (ValidateUserNameExtender))]
öffentliche Klasse ValidateUserNameExtender: ExtenderControlBase<ValidateUserNameProperties, Control>
{
}
Unter anderem erbt unser ValidateUserNameExtender von der Basisklasse ExtenderControlBase<ValidateUserNameProperties, Control> und erhält einige allgemeine Vorgänge. Und drei Attribute werden auf die Klasse angewendet:
Designer: Geben Sie den Klassennamen des Designers dieses Extenders an (wird zur Bereitstellung von Entwurfszeitunterstützung verwendet).
ClientScriptResource: Gibt die Informationen an, die zum Generieren von Client-Atlas-XML-Skripts erforderlich sind. Dflying und ValidateUserNameBehavior müssen hier mit denen übereinstimmen, die in der vorherigen ValidateUserNameBehavior.js definiert wurden.
Erforderliches Skript: Geben Sie das vom Client benötigte Skript an, damit Atlas ValidateUserNameBehavior.js in Form einer AXD-Datei mit der Seite verknüpft.
Schließlich gibt es noch die Datei ValidateUserNameDesigner.cs, in der Sie Entwurfszeitunterstützung hinzufügen können. Lassen Sie Ihr Steuerelement über unterschiedliche Anzeigestile mit unterschiedlichen Eigenschaftswerten verfügen, die in Visual Studio festgelegt sind. Der Einfachheit halber werde ich hier keine Design-Time-Unterstützung hinzufügen.
Zu diesem Zeitpunkt ist unser Extender geschrieben und die nach einem Release Build generierte DLL kann direkt verwendet werden. Im nächsten Artikel werde ich die Verwendung dieses Extenders in einem echten Programm demonstrieren.