Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Asp.net maintainScrollPositionOnPostBack和表单验证失败_C#_Asp.net_Validation_Maintainscrollpositionon - Fatal编程技术网

C# Asp.net maintainScrollPositionOnPostBack和表单验证失败

C# Asp.net maintainScrollPositionOnPostBack和表单验证失败,c#,asp.net,validation,maintainscrollpositionon,C#,Asp.net,Validation,Maintainscrollpositionon,我有一张很长的表格要填。我启用了maintainScrollPositionOnPostBack,因为我有多个基于用户输入隐藏/显示的控件 由于表单很长,我希望页面聚焦并滚动到导致验证失败的第一个控件,并且启用了“聚焦于验证失败”选项。但是,maintainScrollPositionOnPostBack似乎会覆盖此选项(控件会聚焦,但不会向上滚动) 有什么解决办法吗?到目前为止,我所尝试的一切都没有奏效。这是一个asp.net webforms项目 这是一个很好的问题,而且很难开始工作。但我设

我有一张很长的表格要填。我启用了maintainScrollPositionOnPostBack,因为我有多个基于用户输入隐藏/显示的控件

由于表单很长,我希望页面聚焦并滚动到导致验证失败的第一个控件,并且启用了“聚焦于验证失败”选项。但是,maintainScrollPositionOnPostBack似乎会覆盖此选项(控件会聚焦,但不会向上滚动)


有什么解决办法吗?到目前为止,我所尝试的一切都没有奏效。这是一个asp.net webforms项目

这是一个很好的问题,而且很难开始工作。但我设法得到了一个版本,你可以尝试,也许可以建立在它的基础上

maintaintScrollPositionPostback=“true”-设置在表单提交和窗口加载上设置一系列javascript事件,这些事件按照您所说的“覆盖”验证器设置的焦点

因此,我所做的是向所有验证器添加一个公共css类,如下所示:

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" CssClass="error" ErrorMessage="RequiredFieldValidator" SetFocusOnError="true"
    EnableClientScript="false" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>

脚本搜索errormessage,并通过其带有锚的id来关注它。Javascript有很多功能,但它是针对表单元素的,所以这就是为什么这个解决方案


希望这有帮助

这是一个很好的问题,而且很难开始工作。但我设法得到了一个版本,你可以尝试,也许可以建立在它的基础上

maintaintScrollPositionPostback=“true”-设置在表单提交和窗口加载上设置一系列javascript事件,这些事件按照您所说的“覆盖”验证器设置的焦点

因此,我所做的是向所有验证器添加一个公共css类,如下所示:

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" CssClass="error" ErrorMessage="RequiredFieldValidator" SetFocusOnError="true"
    EnableClientScript="false" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>

脚本搜索errormessage,并通过其带有锚的id来关注它。Javascript有很多功能,但它是针对表单元素的,所以这就是为什么这个解决方案


希望这有帮助

谢谢你的回复!我刚刚试过这个,它确实识别出验证失败的控件的数量。但是,
window.location.hash=“#”+el[0].id似乎什么都没做。我不知道这是为什么。我会继续测试和更新。如果这是加载事件的顺序,请尝试将此脚本放到body-element的最底层。是的,解决了问题!不得不把脚本放在最后一页!我猜另一个可能的解决方案是使用更新面板,而不是进行完整的回发,如果我有时间,可能会尝试这么晚。非常感谢您的帮助。对于有相同问题的任何人,如果您使用的是固定顶部导航栏,您可以调用
window.scrollBy(x,-y)
要滚动到正确的位置-y必须是导航栏的高度,因此您可以按该高度向上滚动。非常感谢您的回复!我刚刚试过这个,它确实识别出验证失败的控件的数量。但是,
window.location.hash=“#”+el[0].id似乎什么都没做。我不知道这是为什么。我会继续测试和更新。如果这是加载事件的顺序,请尝试将此脚本放到body-element的最底层。是的,解决了问题!不得不把脚本放在最后一页!我猜另一个可能的解决方案是使用更新面板,而不是进行完整的回发,如果我有时间,可能会尝试这么晚。非常感谢您的帮助。对于有相同问题的任何人,如果您使用的是固定顶部导航栏,您可以调用
window.scrollBy(x,-y)
要滚动到正确的位置-y必须是导航栏的高度,因此您可以向上滚动该数值