繁体   English   中英

当涉及回发时,如何从代码隐藏中将焦点设置为TextBox?

[英]How to set Focus to a TextBox from codebehind when there is postback involved?

我有一个数据输入Web窗体,有几个文本框会导致textchanged事件发生回发..我通过使用... TextBox2.Focus()将焦点从代码隐藏设置为所需的文本框,但仅在Visual Studio 2010上有效,而在在2005年。它没有给出任何错误或任何信息,但是焦点进入textBox2的时间只有一秒钟,然后消失了(可能是由于回发)。 注意:我只能从代码后面设置焦点! 我已经准备好在需要时使用JavaScript,但必须从后面的代码中运行它。

尝试使用以下VB.NET代码在Postback之后将javascript添加到加载的页面:

ClientScript.RegisterStartupScript(Me.GetType(), "Set TB Focus", "document.getElementById('" & TextBox2.ClientID & "').focus();", True)

这会将脚本写回页面上,然后执行(因为它不在函数中)并设置文本框的焦点。

也是C#代码:

ClientScript.RegisterStartupScript(this.GetType(), "Set Tb Focus", "document.getElementById('" & TextBox2.ClientID & "').focus();", true);

尝试:

ClientScript.RegisterStartupScript(typeof(this), "Focus",
String.Format("document.GetElementById('{0}').focus;", txt.ClientID), true);

它注册一个JavaScript并将其聚焦。

       ClientScript.RegisterStartupScript(this.GetType(), "focus", "document.getElementById('" + txtYourControlName.ClientID + "').focus();", true);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM