ASP.NETフィードバック後のdivスクロールバーの位置リセットの問題を解決する(隠しコントロールの原理を利用する)
1369 ワード
まずDIVのためにOscroll=「javascript:set Scooll Top()」を追加する方法です。
ここでsetScrrollTop方法はスクロールバーがスクロールするたびに、divのScrllTopの値を隠しコントロールに割り当てます。コードは以下の通りです
ここでsetScrrollTop方法はスクロールバーがスクロールするたびに、divのScrllTopの値を隠しコントロールに割り当てます。コードは以下の通りです
<div style="overflow: auto; height: 152px" align="left" id="dvScoll_1" onscroll="javascript:setScollTop()">
www.jb51.net
......
</div>
毎回.netでスクロールバーを返送するとリセットしますので、ここはPage_にあります。LoadでDIVのSrollTopに値を再割り当てしました。コードは以下の通りです
function setScollTop()
{
document.getElementById("<%=hidScrollTop.ClientID%>").value=document.getElementById("dvScoll_1").scrollTop;
}
ここのRegister Script Blockは私が書いた方法の一つで、公共のクラスに置いたものです。
if (!IsPostBack)
{
。。。。。
}
else
{
//
if (this.hidScrollTop.Value!="")
{
string scrollTop = this.hidScrollTop.Value;
string strScript="document.getElementById('dvScoll_1').scrollTop="+scrollTop;
RegisterScriptBlock(this.Page, strScript);
}
}