ASP.NETフィードバック後のdivスクロールバーの位置リセットの問題を解決する(隠しコントロールの原理を利用する)


まずDIVのためにOscroll=「javascript:set Scooll Top()」を追加する方法です。
ここで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);
                    }
                }