我正在根据CheckBoxList中的支票加入用户的分数.每次用户检查一个框时,都会将值X添加到整体得分中.当用户取消选中一个框时,从总分中减去值X.这里没有问题
我遇到的问题是,在CheckBoxList属性中使用AutoPostback选项强制页面加载到顶部,而不是停留在用户所在的位置,这意味着每次检查/取消选中后,它们必须保持向下滚动.有办法防止这种情况吗?
解决方法
Ajax解决方案
当然,最好的方法是使用Ajax调用.该页面根本没有移动,数据只是更新. updatepanel是一个快速而简单的启动解决方案,而不是一个最佳的解决方案,但是如果你有一个简单的页面,这是一个很好的解决方案.
第二个解决方案
第二个解决方案是使用锚#.你设置了你喜欢的点出现:
<a name="PointA"></a>
并且您使用该锚点调用页面为page.aspx#PointA.
第三个解决方案
第三个解决方案是使用ASP.NET的内部JavaScript代码.在页面<%@ Page MaintainScrollPositionOnPostback =“true”%> ;. 或者在web.config上影响所有页面,< pages maintainScrollPositionOnPostBack =“true”/> ;. 或以编程方式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