2009-04-29 5 views
3

C#を使用すると、AutoEventWireupがfalseに設定されているコントロールが多数あるWebフォームがあります。 これは、ctorに必要なハンドラを初期化するか、OnInitをオーバーライドするよう強制します。AutoEventWireup多くのコントロール(C#)を持つページでfalse

ページのコントロールに必要な処理はどうですか? 複数のGridViewイベントなどではなく、ドロップダウンリストやリストボックスに対して、ボタンのClick、SelectedIndexChangedを追加します。

AutoEventWireupがtrueに設定されていると、すべてのコントロール(ページを含む)のすべてのイベントがあなたが必要としなかったもののすべてでさえ、舞台裏で有線で結ばれています。

AutoEventWireupをfalseに設定すると、ctor/OnInitに12個または2個のイベントサブスクリプションを持つのが適切ですか? (this.Load + = ... this.GridView1.Sorted + = ... this.Button1.Click + = ...など)

+0

どういうのですか? "ページ上のコントロールに必要な処理はどうですか?"それですか? – Cerebrus

+1

質問: "AutoEventWireupがfalseの場合、すべてのコントロールイベントサブスクリプションをOnInitの下に置くのが適切な設計ですか?" (Handlesのキーワードがないので)ちょっと逆さまになっていたようです。 –

答えて

3

はい、AutoEventWireupに設定すると、すべてのイベントを手動でワイヤーアップする必要がありますfalseOnInitメソッドは、これらのイベントハンドラーを結ぶのに適しています。ページのコントロールに必要な数のイベントサブスクリプションが必要です。

AutoEventWireupはいいアイデアですが、遅くて少し魔法です。私はあなた自身がワイヤーアップを明示的に行う方がはるかに良いことがわかります。

+5

+1は、正式にAutoEventWireUpWithUnicornsに変更します –

1

AutoEventWireUpは、ページ内のすべてのコントロールのすべてのイベントではなく、特定のビルトインページまたはコントロールレベルイベントを自動的にワイヤリングします。

リストについては、Simon's answer~this questionを参照してください。

関連する問題