5

ASP.NET サーバー コントロールを開発して、新しいユーザー登録の非同期ユーザー名可用性検証を提供することを計画しています。コントロールを使用すると、開発者はそれを「ユーザー名」TextBox に向けることができ、ユーザー名が使用可能かどうかを示すことができます。この例と同様ですが、扱いにくい UpdatePanel はありません。

頭を悩ませている設計上の決定の 1 つは、 ScriptControlまたはBaseValidatorから継承するかどうかです。

これをScriptControlとして実装することで、クライアント側の部分を扱いやすくし、resx で簡単にローカライズできます。

ただし、バリデーターが Page.IsValid に関して適切に機能することを確認したいと考えています。これを行う唯一の方法は、BaseValidatorをオーバーライドして実装することEvaluateIsValid()です。

それで、私の質問は、このコントロールをどのように構造化することを提案しますか? BaseValidator から継承することは、バリデーター部分を正しくするための最良の (唯一の) 方法ですか、それとも他の方法でそれを行うことができますか?

4

1 に答える 1

4

BaseValidator から派生させながらIScriptControlインターフェイスを実装すれば、両方を実行できるはずです。

public class YourControl : IScriptControl, BaseValidator

IScriptControl インターフェイスを実装するには、コントロールにも GetScriptReferences メソッドと GetScriptDescriptors メソッドが必要です。

于 2008-09-08T19:52:08.053 に答える