Ajax更新パネルのスクロールバーの問題
-
05-07-2019 - |
質問
データリストがある更新パネルが1つあります。
この更新パネルは、1秒ごとにトリガーしてdbからデータを取得します。
この更新パネルは、垂直スクロール対応のdivタグ内に保持しています。
しかし、新しいデータを取得しても、スクロールバーは自動的に調整されません!!!
crollbackオプションを維持しようとしましたが、機能しません。
updatepanelがトリガーされた後、スクロールバーを元の位置に維持するオプションはありますか?
解決
ここでは、JavaScriptを避けることを好みます。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>
他のヒント
これを試してください:
<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>
所属していません StackOverflow