Kru*_*uug 13 vb.net asp.net visual-studio
我正在根据CheckBoxList中的检查添加用户的分数.每次用户选中一个框时,都会将值X添加到总分中.当用户取消选中某个框时X,会从总分中减去一个值.这里没问题.
我遇到的问题是在CheckBoxList属性中使用AutoPostback选项会强制页面加载回顶部而不是停留在用户所在的位置,这意味着他们必须在每次检查/取消选中后继续向下滚动.有办法防止这种情况吗?
Ari*_*tos 38
当然,最好的方法是使用Ajax调用.页面根本不移动,数据刚刚更新.updatepanel是一个快速简便的启动解决方案 - 不是最佳解决方案,但如果你有一个简单的页面,它是一个非常好的.
第二种解决方案是使用锚#.您可以设置您希望它显示的点:
<a name="PointA"></a>
Run Code Online (Sandbox Code Playgroud)
并且您使用该锚点调用该页面page.aspx#PointA.
第三种解决方案是使用ASP.NET的内部JavaScript代码.在页面声明(顶部第一行)<%@ Page MaintainScrollPositionOnPostback="true" %>.
或者在web.config上影响所有页面,<pages maintainScrollPositionOnPostBack="true" />.
或者以编程System.Web.UI.Page.MaintainScrollPositionOnPostBack = true;方式打开它并按需关闭它.
只有两行jQuery代码,你可以在回发后想要移动的点上制作一个漂亮的动画:
var WhereToMove = jQuery("#PointA").position().top;
jQuery("html,body").animate({scrollTop: WhereToMove }, 1000);
Run Code Online (Sandbox Code Playgroud)
然后将页面移动到此元素:
<a id="PointA" name="PointA"></a>
Run Code Online (Sandbox Code Playgroud)
最后,您可以使用自定义JavaScript代码执行相同操作.互联网上有许多样本:https://www.google.com/?q = asp.net+remain +position
小智 6
回发后阻止页面滚动的两种最佳方法是:将它放在web.config中.
1)
页面maintainScrollPositionOnPostBack ="true"
很多人质疑这条线的确切位置在哪里.所以放这条线的确切位置是
<system.web>
<pages maintainScrollPositionOnPostBack="true">
</system.web>
Run Code Online (Sandbox Code Playgroud)
注意:这将适用于整个解决方案,它会阻止每个表单滚动
2) 实现这一点的第二种方法是将此行放在aspx文件的顶部
MaintainScrollPositionOnPostback =真
像这样
<%@ Page MaintainScrollPositionOnPostback=true Language="C#" AutoEventWireup="true" CodeBehind="xx.aspx.cs" Inherits="xx.Global" %>
Run Code Online (Sandbox Code Playgroud)
注意:这将适用于您要阻止的特定表单.
| 归档时间: |
|
| 查看次数: |
39216 次 |
| 最近记录: |