ASP.NET 焦点滚动页面至输入

发布于 2024-10-09 02:48:40 字数 535 浏览 5 评论 0原文

我的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一紙繁鸢 2024-10-16 02:48:40

对于这种事情,我从 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).

随梦而飞# 2024-10-16 02:48:40

使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文