在页面加载的ASP.NET登录控件中将焦点设置为文本框

anD*_*666 18 asp.net login pageload setfocus

我试图将焦点设置为ASP.NET登录控件内的用户名TextBox.

我曾试图通过几种方式做到这一点,但似乎没有一种方法可行.页面正在加载但不会进入控件.

这是我试过的代码.

SetFocus(this.loginForm.FindControl("UserName"));
Run Code Online (Sandbox Code Playgroud)

TextBox tbox = (TextBox)this.loginForm.FindControl("UserName");
if (tbox != null)
{    
  tbox.Focus();
} // if
Run Code Online (Sandbox Code Playgroud)

Hoa*_*ran 29

我正在使用Page.Form.DefaultFocus并且它可以工作:

// inside page_load, LoginUser is the Login control
Page.Form.DefaultFocus = LoginUser.FindControl("Username").ClientID;
Run Code Online (Sandbox Code Playgroud)


djd*_*d87 11

你在页面上使用ScriptManager吗?如果是这样,请尝试以下操作:

public void SetInputFocus()
{
    TextBox tbox = this.loginForm.FindControl("UserName") as TextBox;
    if (tbox != null)
    {
       ScriptManager.GetCurrent(this.Page).SetFocus(tbox);
    }
}
Run Code Online (Sandbox Code Playgroud)

更新:从未使用过多视图,但请尝试以下操作:

protected void MultiView1_ActiveViewChanged(object sender, EventArgs e)
{
   SetInputFocus();
}
Run Code Online (Sandbox Code Playgroud)