だから私はこの UpdatePanel を持っています。その中には、サムネイルの気の利いた小さな jQuery スクロール ギャラリーがあり、サーバーから完全な画像の URL を取得するためにポスト バックした後、コンテナー内の完全な画像を表示します。スクロール ギャラリーの各サムネイルは、onCommand イベントを持つ imageButton です。
何が起こっているかというと、サムネイルがクリックされるとサーバーにポストバックされ、完全な画像コンテナが変更されます。これは更新パネルで発生しているため、JavaScript の「関数 pageLoad(){}」を使用して、部分的なポストバック後に jQuery を再適用しています。それはうまくいきます!ポストバックのたびに、jQuery ビジュアルが失われることはありません。
問題は、ページを更新する前に 1 つの投稿しか元に戻せないことです。最初のポストバックの後、ビューが更新され、pageLoad JS が起動して jQuery が期待どおりに再初期化されるようです。次にサムネイルをクリックしてフル ビューを表示すると、サーバー上で onCommand イベントが実行されるのを見ることができますが、ビューには何も起こりません。完全な画像の変更、pageLoad() JS の起動はありません。何もない。ポストバックがラウンドトリップを行わず、サーバーで処理された後にデータをクライアントに送り返すようなものです。
それだけでなく、pageLoad() JS の影響を受ける jQuery 要素が含まれているかどうかに関係なく、他の更新パネルでも同じ効果が発生します。最初のポストバックはパネルを正常に更新しますが、その後のポストバックは何もしていないように見えます。
問題は pageLoad() JS にあると思いますが、何が欠けているのかわかりません。
これは、完全または部分的なポストバックのたびに実行する必要があり、私の悲しみを引き起こしているように見えるJS メソッドです。それは私の<頭>の中にあります。
<script type="text/javascript">
function pageLoad(){
$("div.scrollable1").unbind();
$("div.scrollable").unbind();
// initialize small scrollable.
$("div.scrollable1").scrollable({size: 1,clickable: false});
// initialize scrollable
$("div.scrollable").scrollable({size: 1,clickable: false}).mousewheel().find("a[rel]").overlay();
}
</script>