我有一个非常复杂的页面,它有一些AJAX功能。页面的结构由aspx页面中的<asp:ScriptManager>
组成。 3个用户控件。
页面中的一个用户控件链接到另一个用户控件。
第二级用户控件包含许多<asp:UpdatePanel>
控件。在更新面板中,我使用<asp:RadioButtonList>
控件设置为AutoPostBack="True"
,并在SelectedIndexChanged
事件中我使用ScriptManager.GetCurrent(Page).SetFocus(txtAddressLine1);
尝试将焦点设置为文本框当单选按钮列表具有特定的选定值时。
当前没有设置焦点,但在调试代码时设置焦点正在执行。
我使用此结构创建了一个简单的示例页面(aspx - &gt;用户控件 - &gt;使用UpdatePanel嵌套用户控件)并正确设置焦点。
有没有人对可能导致焦点不被设置的原因有任何建议?
我在Windows 7中使用IIS,Visual Studio 2010 Professional,.NET 4.0,C#,而web.config没有为<xhtmlConformance>
属性设置任何内容。
答案 0 :(得分:1)
问题是由用户控件中的以下代码引起的:
protected void Page_PreRender(object sender, EventArgs e)
{
if (txtQNumber != null) txtQNumber.Focus();
}
焦点被设置为覆盖ScriptManager.SetFocus()
的另一个文本字段。