我有一个简单的表单,其中包含一些必需的字段验证器和一个验证摘要控件.当我提交表单时,客户端验证将使表单跳转到页面顶部.如果我删除验证摘要,页面不会移动.
下面是一个简单的例子:
<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()
整个页面中禁用该方法
我有2个 IEnumerable<int>
IEnumerable<int> x;
IEnumerable<int> y;
Run Code Online (Sandbox Code Playgroud)
确定x中是否存在任何int的最佳方法是什么?
目前我正在使用:
return x.Intersect<int>(y).Count() > 0;
Run Code Online (Sandbox Code Playgroud)
是否可以明显更快地循环并单独测试每个?
foreach (int i in x)
{
foreach (int j in y)
{
if (i == j) return true;
}
}
return false;
Run Code Online (Sandbox Code Playgroud)
列表相对较轻,如果在考虑中重要,则x中不超过50个,y中不超过4个.
我有一个简单的网络爬虫来请求网站的站点地图中我需要缓存和索引的所有页面.经过多次请求后,网站开始提供空白页面.
robots.txt
除了链接到他们的站点地图之外,他们没有任何东西,所以我认为我没有打破他们的"规则".我有一个描述性标题,链接到我的意图,我抓取的唯一页面来自他们的站点地图.
http状态代码仍然可以,所以我只能想象它们会在短时间内阻止大量的http请求.什么被认为是请求之间的合理延迟?
我是否忽略了可能导致此问题的任何其他考虑因素?