ASP.NET 焦点滚动页面至输入
我的 UpdatePanel 内有一些文本框/标签。当我跳出其中一个文本框时,必须使用一些文本更新标签。这会导致页面焦点重置到最上面的元素。
这是一个数据输入表单,用户希望根本不需要使用鼠标。我可以在代码中将焦点设置回正确的文本框:
Page.SetFocus(tbxInput);
或者
tbxInput.Focus();
在 IE 中,浏览器滚动位置保持不变(呜呼!)。在 Chrome 和 Firefox 中则不然;调整滚动位置,使聚焦的文本框成为页面上显示的最后一个元素。这确实让用户感到不安。
我在 web.config 中使用以下规则:
<pages theme="Default" styleSheetTheme="Default" maintainScrollPositionOnPostBack="true" validateRequest="false">
如何实现 IE 所具有的行为?
I have a few textboxes/labels inside of an UpdatePanel. When I tab out of one of the textboxes, a label has to be updated with some text. This causes focus on the page to reset to the topmost element.
This is a data-entry form and the users expect to not have to use the mouse at all. I can set focus back on the correct textbox in code:
Page.SetFocus(tbxInput);
or
tbxInput.Focus();
In IE, the browser scroll position is maintained (woo hoo!). In Chrome and Firefox it is not; the scroll location is adjusted so that the focused textbox is the last element shown on the page. This is really disturbing to the user.
I am using the following rules in my web.config:
<pages theme="Default" styleSheetTheme="Default" maintainScrollPositionOnPostBack="true" validateRequest="false">
How can I achieve the behavior that IE has?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于这种事情,我从 javascript 更新标签文本(可能使用对 Web 服务或页面方法的 AJAX 调用)。
For this kind of thing I update the label text from javascript (possibly using an AJAX call to a web service or page method).
使用 asp.net AJAX UpdatePanel 是一种选择。另外您使用的是哪个版本的 .net 框架。
正如 根据此 4.0它应该有效,但我还没有尝试过。
Using asp.net AJAX UpdatePanel is an option. Also which version of .net framework are you using.
As per this with 4.0 it should work but I haven't tried.