内部にデータリストがある更新パネルが1つあります。
この更新パネルは、データベースからデータを取得するために 1 秒ごとにトリガーされます。
この更新パネルを垂直スクロール対応の div タグ内に保持しました。
しかし、新しいデータを取得すると、スクロールバーが自動的に調整されません!!!
Maintainscrollback オプションを試しましたが、機能しません。
updatepanel がトリガーされた後、スクロール バーを元の位置に維持するオプションはありますか?
内部にデータリストがある更新パネルが1つあります。
この更新パネルは、データベースからデータを取得するために 1 秒ごとにトリガーされます。
この更新パネルを垂直スクロール対応の div タグ内に保持しました。
しかし、新しいデータを取得すると、スクロールバーが自動的に調整されません!!!
Maintainscrollback オプションを試しましたが、機能しません。
updatepanel がトリガーされた後、スクロール バーを元の位置に維持するオプションはありますか?
これを試してください:
<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>
これは、更新/更新のたびにスクロール位置を調整する必要がある 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>