次の問題が発生しました。
フレームワークには IsMustField プロパティを持つ Web コントロールがいくつかあります。このプロパティが設定されている場合、CreateChildControls メソッドは一部の CSS を変更し、コントロールに JS Validator を追加します。ここまでは順調ですね。今、私はごく一般的なコントロールを実装しようとしています。テキストフィールドの一部は、あるケースでは必須フィールドですが、他のケースではそうではありません。フィールドが必須フィールドであるかどうかの決定は、Control の OnLoad メソッドで行われます。
最初にページを開いたときは、すべて問題ありません。保存してポストバックが完了するとすぐに、ページが読み込まれます。IsMustField フィールドの初期値は、ascx の値で設定されます (この場合は true)。次に、初めて ProcessPostData を呼び出します。これにより、EnsureChildControls メソッドが呼び出されるため、コントロールの CreateChildControls メソッドが呼び出されます。CSS と JS Validator がこのメソッドにアタッチされているため、コントロールが必須フィールドであるかのように、それらが追加されます。その後、ジェネリック コントロールの OnLoad メソッドが呼び出され、IsMustField が false に設定されます。しかし、既に CreateChildControls メソッドが呼び出されているため、これはもはや望ましい効果をもたらしません。
ここで私の質問は次のようになります: ProcessPostData を最初に試して 2 回目だけ呼び出して、ジェネリック コントロールが IsMustField を false に設定した後にコントロールをロードすることを何らかの方法で抑制することは可能ですか? または、別の解決策を探す必要がありますか。ところで:私は実装がかなりくだらないことを知っています...しかし、フレームワークを変更してはならないので、他に選択肢はありません:)
皆さんが私を助けてくれることを願っています
よろしく、crazy_crank