2011-06-21 13 views
0

更新パネルにリピーターがあります。リピータの内容は5秒ごとにリフレッシュされます。 (タイマーのティックイベントにバインドされたAsyncPostBackTrigger)更新パネルのリピーターのCheckBoxのOnCheckChangedが複数回トリガーされました

リピータの各項目には、自動ポストバックがtrueに設定されたチェックボックスがあります。 リピーターのリフレッシュごとに各チェックボックスの状態を保存しておきたいので、その理由をPage.Sessionに保存します。その後、チックイベントハンドラで、チェックボックスのチェック値をセッションの値に設定します。残念ながら、これはOnCheckedChangedイベントをトリガーするように見えるので、ユーザーインタラクションとコードからのイベントハンドラ呼び出しはどちらもわかりません。

なぜOnCheckChangedが2回以上トリガーされるのか誰も知っていますが、どうすれば は余分な発生を防ぐことができますか? AsyncPostBackTriggerがチェックボックスのOnCheckedChangedイベントをトリガしないようにする方法はありますか?

答えて

1

ポストバックの原因となったコントロールは、コントロールのIDを返すPage.Request.Params.Get("__EVENTTARGET")をチェックすることで確認できます。しかし...

私はあなたのコードを読んでいないか分かりませんが、どのチェックボックスがチェックされているか心配する必要はありません。チェック状態はviewstateに保存する必要があります(ただし、 ...)そうでない場合、あなたのページにはおそらく何か他のものがあります。

+0

私はviewstateについて少し読んで、私はそれをオフにしませんでしたが、それがオンになっているかオフになっているかはわかりません...まだ本当にasp.netのgreenhorn。 – Greg

+0

私はviewstateがリピータのリフレッシュごとに保持されないと思うので、データバインディングが再び起こるので、リピータ項目とそのコントロールが何度も何度も作成されます... – Greg

+0

毎回なぜ再データバインドですか?最初のページの読み込み時にのみデータバインディングを試み、各非同期のポストバックにはデータバインドしないでください。 – Peter