相关疑难解决方法(0)

ASP.Net验证摘要导致页面跳转到顶部

我有一个简单的表单,其中包含一些必需的字段验证器和一个验证摘要控件.当我提交表单时,客户端验证将使表单跳转到页面顶部.如果我删除验证摘要,页面不会移动.

下面是一个简单的例子:

<asp:TextBox ID="test" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="testrequired" runat="server" ControlToValidate="test">*</asp:RequiredFieldValidator>
<asp:ValidationSummary ID="summary" runat="server" />
<asp:Button ID="submit" runat="server" Text="submit" />
Run Code Online (Sandbox Code Playgroud)

我已经尝试设置SetFocusOnError="true"必需的字段验证器和MaintainScrollPositionOnPostback="true"咯咯笑 - 即使这不是一个回发 - 没有任何运气.这个问题有一个已知的解决方案吗?

编辑:

我在WebResource.axd生成的js中发现了问题.似乎在ValidationSummaryOnSubmit()功能中归结为一行.

line 534: window.scrollTo(0,0);
Run Code Online (Sandbox Code Playgroud)

有关如何删除或绕过此的任何想法?

EDIT2:

暂时快速解决:

  • EnableClientScript="false"为所有验证控件设置(禁用客户端验证)
  • MaintainScrollPositionOnPostback="true"在Page指令中设置

仍然希望客户端解决方案......

EDIT3:

似乎更好的解决方法是覆盖window.scrollTo()函数,以便在验证脚本调用时不执行任何操作:

<script type="text/javascript">
    window.scrollTo = function() { }
</script>
Run Code Online (Sandbox Code Playgroud)

在页面上的任何位置添加上述内容会使客户端验证,但在window.scrollTo()整个页面中禁用该方法

asp.net validation

52
推荐指数
5
解决办法
3万
查看次数

标签 统计

asp.net ×1

validation ×1