0

我的页面底部有一个复选框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...
}
4

1 回答 1

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) { }
}
于 2013-01-30T04:47:44.210 回答