著者: Dflying Chen ( http://dflying.cnblogs.com/ )
PS: 皆さんの愛のおかげで、私はブログパークに住み着いてから 2 か月間たくさんのことを学び、たくさんの友達ができ、たくさんの機会を得ることができました。現在、私はアトラスの本『Foundations of Atlas: Rapid Ajax Development with ASP.NET 2.0』を翻訳する光栄に恵まれており、この本は People's Posts and Telecommunications Publishing House から 3 か月以内に出版される予定です。そのため、この期間中は大変忙しく、以前ほど頻繁にブログを更新することができず、申し訳ございません。もちろん、友人同士でアトラス関連の質問について話し合うことは大歓迎です。私もできる限りお答えするつもりです。
今後 2 か月間、Foundations of Atlas の翻訳で優れた成果を出せるよう努力したいと考えています。そのため、用語や翻訳スタイルなど、友人と話し合う必要がある問題がたくさんあるはずです。こちらこそよろしくお願いします!
前回の記事 (「ASP.NET Atlas サーバー側 Extender コントロールの開発 - クライアント側の動作の作成」を参照してください) では、すでにクライアント側の動作を作成しました。この記事では、これをまとめてサーバー側コントロールとして実行してみましょう。
まず、ValidateUserNameProperties.cs ファイルに移動します。このクラスは、クライアント プロパティ値とサーバー プロパティ値の間のマッピング関係を定義する TargetControlPropertiesBase<Control> 基本クラスを継承します。同時に、TargetControlPropertiesBase<Control> 基本クラスと Atlas Control Extender は、クライアント側の XML スクリプトを生成する作業をすでに行っています。必要なのは、動作に必要な属性を定義することだけです。
CheckResultLabelID、ServiceName、MethodName、ValidMessage、InvalidMessage の 5 つの属性を追加する必要があります。わかりやすくするために、属性
[DefaultValue("")]
の例のみを示します。
[IDReferenceProperty(typeof(WebControl))]
[必須プロパティ()]
パブリック文字列 CheckResultLabelID
{
得る
{
return GetPropertyStringValue("CheckResultLabelID");
}
セット
{
SetPropertyStringValue("CheckResultLabelID", 値);
}
}
CheckResultLabelID の定義の前に、次の 3 つの属性が続きます。
DefaultValue: この属性のデフォルト値を設定します。
IDReferenceProperty: このプロパティが特定の種類のコントロールの ID のみを保存できることを指定します。
RequiredProperty: このプロパティが必須であることを指定します。
他のいくつかのプロパティについては、後で提供されるソース ファイルを参照できます。
次に、ValidateUserNameExtender.cs ファイルを見てください。主要な部分は次のとおりです。
[Designer(typeof(ValidateUserNameDesigner))]
[ClientScriptResource("Dflying", "ValidateUserNameBehavior", "Dflying.Atlas.ControlTookit.ValidateUserName.ValidateUserNameBehavior.js")]
[RequiredScript(typeof(ValidateUserNameExtender))]
パブリック クラス ValidateUserNameExtender : ExtenderControlBase<ValidateUserNameProperties, Control>
{
}
その中で、ValidateUserNameExtender は ExtenderControlBase<ValidateUserNameProperties, Control> 基本クラスから継承し、いくつかの共通操作を取得します。そして、次の 3 つの属性がクラスに適用されます。
デザイナー: このエクステンダーのデザイナーのクラス名を指定します (デザイン時サポートを提供するために使用されます)。
ClientScriptResource: クライアント Atlas XML スクリプトを生成するために必要な情報を指定します。ここでの Dflying および ValidateUserNameBehavior は、以前の ValidateUserNameBehavior.js で定義されたものと一致している必要があります。
RequiredScript: Atlas が ValidateUserNameBehavior.js を axd ファイルの形式でページにリンクするように、クライアントに必要なスクリプトを指定します。
最後に、ValidateUserNameDesigner.cs ファイルがあり、デザイン時のサポートを追加できます。 Visual Studio で設定されたさまざまなプロパティ値を使用して、コントロールにさまざまな表示スタイルを持たせます。ここでは簡略化するために、デザイン時のサポートは追加しません。
この時点で、エクステンダーが作成され、リリース ビルド後に生成された DLL を直接使用できるようになります。次の記事では、この Extender を実際のプログラムで使用する方法を説明します。