1

我正在处理一个 asp 页面,该页面在用户输入后验证文本框中的信息。

手动输入“产品编号”(自由格式)。使用更新后事件,我让页面发布数据并查找产品编号以确定它是否有效。如果无效,则会在框中发布错误消息,否则将产品编号和描述放在框中(IE X1234 变为 X1234 – RED YO-YO)。这可以 100% 正常工作。我的问题是更新后所有数据输入项都失去了焦点。我希望将焦点返回到下一个文本框,以便操作员可以输入下一条所需信息。

注意:到目前为止,我插入了一个动态更改“TABSTOP”编号的函数,以便在验证查找后为“下一个”框分配#1。这适用于我的浏览器(Firefox 3.05),但不适用于我的 IE(谢谢比尔!)。在 IE 中,当发布完成时,由于某种原因,焦点最终会落在“输入 URL”上,并且点击选项卡会将焦点放在某个控制按钮上,而该按钮离我想要的位置不远。

4

2 回答 2

1

如果您正在尝试做我认为的事情,那么应该这样做。

在您的 ASPX 页面中:

<script type="text/javascript">
    function focusControl(ctrlId) {
        document.getElementById(ctrlId).focus();
    }
</script>

在您的代码隐藏中:

// 'ctrl' is the name of the ASP.NET TextBox that you want to receive
// focus on load.
Page.ClientScript.RegisterStartupScript(
    typeof(Page),
    "Focuser",
    "focusControl('" + ctrl.ClientID + "');",
    true);
于 2009-01-29T04:49:45.900 回答
1

这是一般的解决方案:

http://couldbedone.blogspot.com/2007/08/restoring-lost-focus-in-update-panel.html

于 2009-01-29T05:07:23.617 回答