0

内部にデータリストがある更新パネルが1つあります。

この更新パネルは、データベースからデータを取得するために 1 秒ごとにトリガーされます。

この更新パネルを垂直スクロール対応の div タグ内に保持しました。

しかし、新しいデータを取得すると、スクロールバーが自動的に調整されません!!!

Maintainscrollback オプションを試しましたが、機能しません。

updatepanel がトリガーされた後、スクロール バーを元の位置に維持するオプションはありますか?

4

3 に答える 3

2

これを試してください:

<script>
  var prm = Sys.WebForms.PageRequestManager.getInstance();
  prm.add_beginRequest(function(){
     window.dTop = document.getElementById('divIdHere').scrollTop;
  });

  prm.add_endRequest(function(){
       setTimeout(function(){
         document.getElementById('divIdHere').scrollTop = window.dTop;
      },100);
  });
</script>
于 2009-10-22T11:38:26.847 に答える
1

これは、更新/更新のたびにスクロール位置を調整する必要がある JavaScript を避けることを好むものです...

私はあなたが以下のようなページを設計したにちがいないと思います

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional/Always">
    <ContentTemplate>
        <div style="height: 400px/300px; overflow-y:scroll;"> 
            <asp:DataList ID="DataList1" runat="server">
                ....
            </asp:DataList>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>

このようなものに変更して、スクロールの問題を処理する必要があります

<div style="height: 400px/300px; overflow-y:scroll;"> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional/Always">
        <ContentTemplate>
                <asp:DataList ID="DataList1" runat="server">
                    ....
                </asp:DataList>
        </ContentTemplate>
    </asp:UpdatePanel>
</div>
于 2009-10-22T16:50:19.883 に答える