Asp.net

在頁面載入時將焦點設置到 ASP.NET 登錄控制項中的文本框

  • June 15, 2010

我試圖將焦點設置在 ASP.NET 登錄控制項內的使用者名 TextBox 上。

我嘗試了幾種方法,但似乎都沒有。頁面正在載入,但未轉到控制項。

這是我嘗試過的程式碼。

SetFocus(this.loginForm.FindControl("UserName"));

TextBox tbox = (TextBox)this.loginForm.FindControl("UserName");
if (tbox != null)
{    
 tbox.Focus();
} // if

您在頁面上使用 ScriptManager 嗎?如果是這樣,請嘗試以下操作:

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

更新:以前從未使用過多視圖,但試試這個:

protected void MultiView1_ActiveViewChanged(object sender, EventArgs e)
{
  SetInputFocus();
}

我正在使用 Page.Form.DefaultFocus 並且它有效:

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

引用自:https://stackoverflow.com/questions/3043592