2 つの更新パネルがあり、両方の更新パネルが UpdateMode="Conditional" に設定されています。
最初の更新パネルには以下が含まれます。
- 2 AJAX ツールキット SliderExtender
- 2 対応するテキスト ボックス
最初の更新パネルには、2 つの SliderExtender テキスト ボックスの TextChanged イベントが非同期ポスト バック トリガーとして設定されています。
<Triggers>
<asp:AsyncPostBackTrigger ControlID="tb_Slider1" EventName="TextChanged" />
<asp:AsyncPostBackTrigger ControlID="tb_Slider2" EventName="TextChanged" />
</Triggers>
2 番目の更新パネルには以下が含まれます。
- 3 ラベル
- 1秒間隔のタイマー
2 番目の更新パネルは、コード ビハインドを介してラベル内のテキストを読み込みます。2 番目の更新パネルには、タイマーの Tick イベントが非同期ポストバック トリガーとして設定されています。
<Triggers>
<asp:AsyncPostBackTrigger ControlID="tm_Timer1" EventName="Tick" />
</Triggers>
最初の更新パネルでいずれかのスライダーをスクロールすると、2 番目の更新パネルのタイマーが作動します。スライダーはそれ自体をドロップし、TextChanged イベントを発生させます。
2 番目の更新パネルに部分的にポスト バックすると、最初の更新パネル コントロールが反応するのはなぜですか?
私は更新パネルをブラッシュアップしてきましたが、部分的なポストバックは、すべてのサーバーページのライフサイクルイベントを実行するという点で、完全なポストバックに似ているようです. これがスライダーの誤動作の原因かどうかわかりませんか?
とにかくこれを回避する方法はありますか?それとも「意図したとおりに機能しています」ですか?
最終的には、タイマーが動いていてもスライダーを自由に動かせるようにしたいと考えています。このようにして、タイマー更新パネルが頻繁に更新され、ユーザーがスライダー コントロールをドロップすると (つまり、TextChanged)、最初の更新パネルが更新されます。