2009-03-10 16 views
3

アップデートパネルの中にタイマーがあります。絶えずリフレッシュします(約2.5秒ごとに)。スクロール中にスクロールした場合、スクロール位置は部分的な更新前の状態に戻ります。(ASP.NET:タイマーとスクロールの位置

ASP.NET 3.5を使用していて、MaintainScrollPositionOnPostbackがtrueに設定されていても変更されませんこの問題が発生したが、使い勝手は迷惑です...

敬具、 サシャ

答えて

4

我々は非同期ポストバックをの上にユーザーをリセットする同様の問題を持っていた理由)。

全く分かりません非常に長いページです。次のコードを見つけて解決しました:http://forums.asp.net/t/1047815.aspx

のScriptManagerのページに、という次のjavascriptを挿入しました。

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 

<script type="text/javascript"> 
    var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_beginRequest(beginRequest); 

    function beginRequest() { 
     prm._scrollPosition = null; 
    } 
</script> 

これは、ポストバックが返されたときにポストバックがユーザーのスクロール位置をリセットしないようにしたためです。

この問題が発生しているかどうかはわかりません。また、ポストバックが発生した後にスクロール位置を設定する、より堅牢な方法について説明しているこの記事をご覧ください。Reset scroll position after Async postback - ASP.NET

+0

エラーが発生しました.Sys.Webforms undefined。しかし、あなたが投稿したリンクには別のスニペットがあります(あなたの空のscrollTo関数を書く)。それがトリックでした。あなたの例でエラーが発生する理由を調べる必要があります... – Sascha

+0

次のいずれかになる可能性があります。1. ScriptManagerの前にJavascriptが表示されます。http://bit.ly/8askn 2. AJAX用にWeb.Configが設定されていません。 http://bit.ly/ktZK2 3. ScriptManagerでEnablePartialRenderingをtrueに設定する必要があります。 http://bit.ly/14Gsjおそらく原因は#3です。 – sgriffinusa

+0

犯人は(1)であった。試してみた後、あなたの投稿を読んでください。ありがとう。 – Sascha

関連する問題