我的页面底部有一个复选框,其属性为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...
}
答案 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) { }
}