zukucode
主にWEB関連の情報を技術メモとして発信しています。

UpdatePanelの非同期ポストバック時にスクロールの位置を保持する

UpdatePanelの非同期ポストバックをしたあとにスクロール位置がクリアされてしまうことがあります。

UpdatePanelのポストバックの開始と終了のイベントを設定するで紹介したように、非同期ポストバック開始のタイミングでスクロール位置の値を保持しておき、非同期ポストバック終了のタイミングで保持しておいた値で位置を復元すれば対応できます。

var scrollTop; // スクロール位置を保持しておく変数
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(function (sender, args) {
  scrollTop = document.getElementById('Div1').scrollTop;
});

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, args) {
  // スクロール位置を復元
  document.getElementById('Div1').scrollTop = scrollTop;
});

関連記事

  • UpdatePanelのポストバックの開始と終了のイベントを設定する

    ASP.NETのUpdatePanelの非同期ポストバックの開始または終了のタイミングで何かしらの処理を行いたい場合があります。JavaScriptで非同期ポストバックの開始と終了のイベントを設定でき...


  • UpdatePanelの非同期ポストバック時にスクロールの位置を保持する

    UpdatePanelの非同期ポストバックをしたあとにスクロール位置がクリアされてしまうことがあります。非同期ポストバック開始のタイミングでスクロール位置の値を保持しておき、非同期ポストバック終了のタ...


  • ASP.NET アップロードするファイルサイズの上限を設定する

    アップロードサイズの上限はWeb.configで設定します。設定するのはファイルサイズの上限ではなくリクエストサイズの上限です。リクエストのサイズはデフォルトだと4MBに設定されています。以下のように...


  • JavaScript 時刻の妥当性チェックをする

    時刻の妥当性チェックを行います。HH:mm書式で00:00〜23:59までの範囲が有効になるように正規表現でチェックをしています。


  • JavaScript システム日付を取得する

    JavaScriptでシステム日付を取得するには以下のように、Dateオブジェクトを宣言します。取得したDateオブジェクトから年〜ミリ秒までをそれぞれ取得できます。月だけは0から始まるので+1をする...


  • JavaScript 文字列を指定した長さに切り取る

    JavaScriptで文字列を指定した長さに切り取ります。よくある方法としてsubstrとsubstringの2つの方法があります。substr(開始位置, 切り取る文字数)で文字列を切り取ります。開...


  • ASP.NET UpdateProgressを手動で表示する

    UpdateProgressコントロールを置いておくだけで、デフォルトではすべてのUpdataPanelの非同期ポストバック時にProgressTemplate内の要素が表示されます。非同期ポストバッ...


  • JavaScript trimで前後の空白(スペース)を削除する

    JavaScriptで文字列の前後の空白(スペース)を削除します。trim関数を使えば先頭と末尾の半角スペース、全角スペースの両方が削除されます。IE8以下の場合はtrim関数が使えないので自作する必...


  • JavaScript 文字列を途中で改行する

    JavaScriptで文字列を途中で改行します。主にalertやconfirmのメッセージで使用します。ブラウザに表示する場合は改行コードをbrタグに置換する必要があります。文字列を改行するには以下の...


  • JavaScript 文字列の長さ(バイト数)を取得する

    JavaScriptで文字列の長さを取得します。バイト数で計算したい場合は以下のようにします。Shift_JISで単純に半角1バイト全角2バイトで計算したい場合は以下のようにします。Shift_JIS...