加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 防止页面在回发后滚动

发布时间:2020-12-15 19:02:49 所属栏目:asp.Net 来源:网络整理
导读:我正在根据CheckBoxList中的支票加入用户的分数.每次用户检查一个框时,都会将值X添加到整体得分中.当用户取消选中一个框时,从总分中减去值X.这里没有问题 我遇到的问题是,在CheckBoxList属性中使用AutoPostback选项强制页面加载到顶部,而不是停留在用户所在
我正在根据CheckBoxList中的支票加入用户的分数.每次用户检查一个框时,都会将值X添加到整体得分中.当用户取消选中一个框时,从总分中减去值X.这里没有问题

我遇到的问题是,在CheckBoxList属性中使用AutoPostback选项强制页面加载到顶部,而不是停留在用户所在的位置,这意味着每次检查/取消选中后,它们必须保持向下滚动.有办法防止这种情况吗?

解决方法

Ajax解决方案

当然,最好的方法是使用Ajax调用.该页面根本没有移动,数据只是更新. updatepanel是一个快速而简单的启动解决方案,而不是一个最佳的解决方案,但是如果你有一个简单的页面,这是一个很好的解决方案.

第二个解决方案

第二个解决方案是使用锚#.你设置了你喜欢的点出现:

<a name="PointA"></a>

并且您使用该锚点调用页面为page.aspx#PointA.

第三个解决方案

第三个解决方案是使用ASP.NET的内部JavaScript代码.在页面<%@ Page MaintainScrollPositionOnPostback =“true”%&gt ;. 或者在web.config上影响所有页面,< pages maintainScrollPositionOnPostBack =“true”/&gt ;. 或以编程方式System.Web.UI.Page.MaintainScrollPositionOnPostBack = true;打开它并按要求关闭它. 使用jQuery 只有两行jQuery代码,您可以在发布后想要移动的点上创建一个漂亮的动画:

var WhereToMove = jQuery("#PointA").position().top;
jQuery("html,body").animate({scrollTop: WhereToMove },1000);

并将页面移动到此元素:

<a id="PointA" name="PointA"></a>

谷歌搜索

最后,您可以使用自定义JavaScript代码执行相同操作.互联网上有很多样本:https://www.google.com/?q=asp.net+remain+position

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读