asp.net – 验证失败后如何防止页面跳转到顶部位置?

前端之家收集整理的这篇文章主要介绍了asp.net – 验证失败后如何防止页面跳转到顶部位置?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的aspx页面与几个TextBoxes和一个提交按钮。某些字段是必需的,按钮下方是ValidationSummary。完整的表单大于屏幕高度,所以必须向下滚动才能到达提交按钮。如果我不填写所有必填字段,并单击提交验证失败,验证摘要显示按钮下方的一些信息消息。验证在客户端发生,并且不发生回发。

所以这一切都按照希望。但令人不安的是,当我点击提交按钮时,页面移动(“跳转”)到顶部位置。要查看验证摘要,必须再次向下移动页面。@H_301_3@

我试图将ShowSummary属性设置为false(这没有什么意义):验证仍然有效(无回发),但在这种情况下,页面不会移动到顶部位置。所以问题似乎取决于渲染验证文本。@H_301_3@

有没有办法阻止这个页面跳转?@H_301_3@

先谢谢你!@H_301_3@

更新:@H_301_3@

我上面描述的行为似乎不符合浏览器。我已经在五种不同的浏览器中进行了测试,而且到处都是相同的。@H_301_3@

解决方法

我在asp.net( http://forums.asp.net/p/1545969/3779312.aspx)中提出了这个问题,并得到了两个解决方案的回复。更好的一个是保持滚动位置的这个Javascript:
<script type="text/javascript">
    window.scrollTo = function( x,y ) 
    {
        return true;
    }
</script>

这只是放在页面上,无处可以打电话。@H_301_3@

另一个解决方案类似于RioTera的建议(使用MaintainScrollPositionOnPostBack),但是将ValidClientScript =“false”添加到Validators以强制回发。它也有效果,但价格是人为的回发。@H_301_3@

原文链接:/aspnet/253595.html

猜你在找的asp.Net相关文章