Sla*_*uma 24 asp.net validation validationsummary
我有一个简单的aspx页面,其中包含一些TextBox和一个提交按钮.某些字段是必需的,按钮下方是ValidationSummary.完整的表单大于屏幕高度,因此必须向下滚动才能到达提交按钮.如果我没有填写所有必填字段并单击提交验证按预期失败,验证摘要会在按钮下方显示一些信息消息.验证发生在客户端上,不会发生回发.
所以这一切都是有希望的.但令人不安的是,当我点击提交按钮时,页面会移动("跳转")到顶部位置.要查看验证摘要,必须再次向下移动页面.
我试图将ShowSummary属性设置为false(这没有多大意义):验证仍然有效(没有回发)但在这种情况下页面不会移动到顶部位置.所以问题似乎取决于渲染验证文本.
有没有办法防止这个页面跳转?
先感谢您!
更新:
我上面描述的行为似乎不依赖于浏览器.我已经在五种不同的浏览器中进行了测试,并且它在各处都是相同的.
Sla*_*uma 32
我在asp.net(http://forums.asp.net/p/1545969/3779312.aspx)上提出了这个问题并得到了两个解决方案的回复.更好的是这个Javascript维护滚动位置:
<script type="text/javascript">
window.scrollTo = function( x,y )
{
return true;
}
</script>
Run Code Online (Sandbox Code Playgroud)
这只是放在页面上无处可去.
另一个解决方案类似于RioTera的提议(使用MaintainScrollPositionOnPostBack),但增加EnableClientScript="false"了Validators以强制回发.它也有效,但价格是人为的回发.
rio*_*era 23
您可以使用Page属性MaintainScrollPositionOnPostBack:
在代码隐藏中:
Page.MaintainScrollPositionOnPostBack = true;
Run Code Online (Sandbox Code Playgroud)
或者在你的网络表格中:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" MaintainScrollPositionOnPostback="true" %>
Run Code Online (Sandbox Code Playgroud)
小智 6
尝试设置页面焦点Page.SetFocus(control);
我有一个插入按钮,它为我的gridview添加了一个额外的行,这是一个页面上的许多项目之一,所以我可以添加Page.SetFocus(control)为我的btnInsert_Click事件中的最后一个方法.
| 归档时间: |
|
| 查看次数: |
42999 次 |
| 最近记录: |