Partager via


Comment : définir le focus sur des contrôles serveur Web ASP.NET

Mise à jour : novembre 2007

Si cela est important pour votre application, vous pouvez placer le focus sur un contrôle serveur Web ASP.NET spécifique en utilisant le code serveur. Vous pouvez placer le focus sur un contrôle spécifique de manière dynamique ou spécifier un contrôle qui doit obtenir le focus par défaut. Vous pouvez définir globalement le focus par défaut pour le formulaire ou le définir sur un contrôle qui est un enfant d'un contrôle Panel.

Vous pouvez placer le focus sur les types de contrôles suivants :

Vous pouvez également définir le focus sur des contrôles qui contiennent un ou plusieurs des contrôles répertoriés ci-dessus. Par exemple, vous pouvez définir le focus sur un contrôle Login. Dans ce cas, le focus sera placé sur le premier contrôle éligible au sein du contrôle Login.

En général, si vous définissez le focus sur un contrôle qui ne peut pas le recevoir ou qui est masqué ou désactivé, l'appel est ignoré. Si vous essayez de définir le focus sur un contrôle non visuel, comme un contrôle de source de données, une exception est levée.

Remarque :

Pour pouvoir définir le focus, le script client doit être activé dans le navigateur.

Pour définir le focus sur un contrôle serveur Web ASP.NET

  • Appelez la méthode Focus du contrôle.

    - ou -

  • Appelez la méthode SetFocus de la page, en lui passant l'ID du contrôle sur lequel vous souhaitez définir le focus.

    L'exemple de code suivant montre comment définir le focus sur le contrôle ayant l'ID TextBox1 :

    Note de sécurité :

    Cet exemple a une zone de texte qui accepte l'entrée d'utilisateur, ce qui constitue une menace éventuelle pour la sécurité. Par défaut, les pages Web ASP.NET vérifient que les entrées d'utilisateur n'incluent pas de script ou d'éléments HTML. Pour plus d'informations, consultez Vue d'ensemble des attaques de script.

     [Visual Basic]
    Protected Sub Page_Load(ByVal sender As Object, _
        ByVal e As System.EventArgs)
        TextBox1.Focus()
    End Sub
    
    protected void Page_Load(object sender, EventArgs e)
    {
        TextBox1.Focus();
    }
    

Pour définir le focus par défaut dans un formulaire ou un panneau

  • Définissez l'attribut DefaultFocus de l'élément form de la page ou d'un contrôle Panel.

    L'exemple de code suivant montre une page avec le focus par défaut défini au contrôle TextBox1 :

    <%@ Page Language="VB" %>
    <html>
    <head >
      <title>Test Page</title>
    </head>
    <body>
      <form id="form1"  defaultfocus="TextBox1" >
        <div>
          <asp:TextBox ID="TextBox1" ></asp:TextBox>
          <br />
          <asp:Button ID="Button1"  Text="Button" />
          <br />
        </div>
      </form>
    </body>
    </html>
    
<%@ Page Language="C#" %>
<html>
<head >
  <title>Test Page</title>
</head>
<body>
  <form id="form1"  defaultfocus="TextBox1" >
    <div>
      <asp:TextBox ID="TextBox1" ></asp:TextBox>
      <br />
      <asp:Button ID="Button1"  Text="Button" />
      <br />
    </div>
  </form>
</body>
</html>

Voir aussi

Concepts

Ordre de tabulation, focus et touches d'accès rapide dans les contrôles serveur Web ASP.NET