Gridview单击编辑、选择等按钮时外围DIV滚动条跳到顶部的问题

问题描述:单击Gridview编辑、选择等按钮时因引起页面提交导致DIV滚动条回到顶部,需要用户手动定位到原来位置,很不方便

解决办法:

        1、没有用AJAX时,在原来<%@ Page ……后面增加MaintainScrollPositionOnPostback="true"

        2、当使用了AJAX时以上方法会失效,此时需要在DIV滚动时记住滚动条位置,并在提交后将其恢复

             a、为外围DIV设置ID及滚动时要执行的代码:

                  <div id="dvGridView" style="overflow: auto; width: 200px; max-height:200px;" runat="server" οnscrοll="javascript:RecordPostion(this);">

             b、增加2个隐藏按钮,保存值:

                  <asp:HiddenField ID="dvscrollX" runat="server" />
                  <asp:HiddenField ID="dvscrollY" runat="server" />
            c、脚本:

    <script type="text/javascript" language="javascript">
        function RecordPostion(obj)
        {
            var div1 = obj;
            var sx = document.getElementById('dvscrollX');
            var sy = document.getElementById('dvscrollY');
           
            sy.value = div1.scrollTop;
            sx.value = div1.scrollLeft;
        }
       
        function GetResultFromServer() {
            try {
                var sx = document.getElementById('dvscrollX');
                var sy = document.getElementById('dvscrollY');

                document.getElementById('dvGridView').scrollTop = sy.value;
                document.getElementById('dvGridView').scrollLeft = sx.value;
            } catch (e) {
            }
        }
    </script>

d、后台注册脚本:

    protected void GridView1_DataBound(object sender, EventArgs e)
    {
        string sjs = "GetResultFromServer();";
        ScriptManager.RegisterClientScriptBlock(this.GridView1, this.GetType(), "", sjs, true);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值