当我检查或取消选中ASP.Net中的复选框时,页面回滚后滚动

时间:2013-01-30 02:37:10

标签: asp.net checkbox updatepanel autopostback

我的页面底部有一个复选框,其属性为Autopostback,设置为 true

当我选中或取消选中复选框时,滚动条会上升而不是停留在当前位置,如何防止ASP.Net中出现此类问题?

我搜索并尝试了一些解决方案,但它对我不起作用..这是我的一些解决方案..

我试试这个javascript ..但效果不佳..

<script type="text/javascript">
        var xPos, yPos;
        var prm = Sys.WebForms.PageRequestManager.getInstance();


        function BeginRequestHandler(sender, args) {
            if ($get('<%= Panel1.ClientID %>') != null) {
                xPos = $get('<%=Panel1.ClientID %>').scrollLeft;
                yPos = $get('<%=Panel1.ClientID %>').scrollTop;
            }
        }

        function EndRequestHandler(sender, args) {
            if ($get('<%= Panel1.ClientID %>') != null) {
                $get('<%=Panel1.ClientID %>').scrollLeft = xPos;
                $get('<%=Panel1.ClientID %>').scrollTop = yPos;
            }


        }
            prm.add_beginRequest(BeginRequestHandler);
            prm.add_endRequest(EndRequestHandler);
</script>

即便如此......我放了MaintainScrollPositionOnPostback

<%@ Page Title="Sample" Language="C#" MasterPageFile="~/MasterPage.master"
    AutoEventWireup="true" CodeFile="sample.aspx.cs" Inherits="sample_Default" MaintainScrollPositionOnPostback="true" EnableViewState="true"%>

和...

protected void Page_Load(object sender, EventArgs e)
{
        MaintainScrollPositionOnPostBack = true;
        //some codes that is not important to my question...
}

1 个答案:

答案 0 :(得分:0)

在Panel1之前使用DIV 作为前: -

<div id="ItmeTypeDiv" style="width: 100%; height: 347px; overflow: auto" onscroll="javascript:document.getElementById('ItmeTypeDivScroll').value = this.scrollTop">

  YOUR PANEL
</div>
<asp:HiddenField ID="ItmeTypeDivScroll" runat="server" ClientIDMode="Static"/>

在代码隐藏的页面加载

ScriptManager.RegisterStartupScript(this, GetType(), "LoadItemTypeScroll", "LoadItemTypeScroll();", true);

这是一个你需要添加的javascript

function LoadItemTypeScroll() {
try {
    document.getElementById('ItmeTypeDiv').scrollTop = document.getElementById('ItmeTypeDivScroll').value;
}
catch (e) { }
}
相关问题