2009-07-24 8 views
1

カスタムasp.netサーバーコントロール(実際にはチェックボックスの特殊バージョン)があります。私はポストバックでいくつかの処理をしたいが、ポストバックがこのコントロールの結果であった場合(オートポストバックがtrueに設定されている場合)に限られます。ポストバックがこのコントロールの結果であるかどうかを判断する最良の方法は何ですか?asp.netカスタムサーバーコントロール - このコントロールのためにポストバックが発生したかどうかを確認する方法

ありがとうございました。

+0

カスタムオブジェクトのクリックハンドラを作成するだけでは問題ありませんか?ページが投稿された後に自動的に呼び出されます。 –

+0

カスタムサーバーコントロールがクリックイベントを受け取ったとは思いません。少なくとも私はそのようなものを見つけることができませんでした。ポストバックの原因となったコントロールであると判断すると、ボタンコントロールによってclickイベントが生成されると思います。もちろん、私はここで何かが見つからないことがあります。 –

答えて

1

event bubblingのように聞こえます。基本的には、カスタムサーバーコントロールからのチェックボックス(サーバーコントロールがコンポジットコントロールの場合)にonchangeイベントを公開するだけです。次に、コントロールをホストしているページのイベントハンドラに特別な処理コードを記述します。

+0

私のコントロールは、Checkboxから派生したクラスです。 onchangeイベントが見つかりません。 –

+0

"asp:CheckBox"の場合、イベントはOnCheckedChanged()と呼ばれます。イベントをバブリングするコードを実装したら、RaiseBubbleEvent()OnCheckChanged()イベントハンドラを呼び出します。 – HectorMac

+0

お時間をいただきありがとうございます。実際に私がこれをやっている理由は、CheckChangedイベントが必要な時に常に発生するわけではないからです。コントロールがチェック状態が最後のポストバックから変更されていないと考えている場合、イベントはありません。しかし、いくつかのJavaScriptコードがポストバックを起こさずにチェックボックスの状態を変更し、ユーザーがボックスを再度クリックした場合、サーバーコードは実際に(JavaScriptを介して)変更された状態を認識せず、ボックス。状態が最後のポストバックと同じで、イベントを発生させないことがわかります。 –

関連する問題