J'essaie de définir la mise au point sur une zone de texte.
SetFocus(txtUserName);
5 Réponses :
txtUserName.Focus() For more info, check: MSDN - How to: Set Focus on ASP.NET Web Server Controls MSDN - Control.Focus Method
Quelle est une différence entre .focu () et setFocus () et quelle est la fonctionnalité de chacun?
@NovicicEveloper - Focus () appelle simplement SetFocus () - ils sont les mêmes.
Les commandes ont une méthode de mise au point () que vous pouvez appeler pour définir la mise au point sur ce contrôle. En outre, la page a une méthode SetFocus (), qui prend un objet de contrôle. Ou l'ID de la commande que vous souhaitez définir Focus à. P> this.Page.SetFocus(txtUserName.ClientID);
@NovicicEveloper - Après avoir examiné le code source, la réponse est oui, elles ont la même fonctionnalité.
Vous pouvez utiliser quant à la différence entre les méthodes? Ils sont en grande partie interchangeables et vous devriez appeler, ce qui est plus pratique, compte tenu des objets que vous avez accès - généralement appeler .focus () code> sur le contrôle lui-même ou appelez la page
SETFOCUS () CODE>, en transmettant une référence au contrôle. Notez que vous devez transmettre le contrôle, pas l'identifiant, car cela ne semble pas être pris en charge (au moins comme de .NET 3.5). Voir MSDN Page.Setfocus pour plus. P>
.focus () code> sur le contrôle est plus facile. Voir Comment définir la mise au point sur ASP.NET Web Server Controls a> sur msdn. p>
Selon la façon dont vous voulez que votre flux de travail soit, ou quelles sont vos spécifications, vous avez 2 options:
définir si du côté serveur. Comme John mentionné, vous pouvez utiliser la méthode définissez-le sur le côté client à l'aide de JavaScript. Cela vous donnera plus de flexibilité car vous pouvez appliquer l'accent basé sur l'interaction de l'utilisateur.
Pour appliquer l'accent sur le côté client, vous pouvez utiliser le DOM (modèle d'objet de document). Vous devez obtenir une référence au contrôle, puis vous pouvez appeler la méthode document.getelementByID (Textusername) .FOCUS (); P> LI>
ol> si l'identifiant du contrôle (tel qu'il est enregistré sur le côté du client) est Une bonne pratique consiste à enregistrer une variable JavaScript dont le but est de contenir l'ID client du contrôle tel qu'il sera rendu dans le HTML.
Vous pouvez y accomplir en utilisant le ClientcriptManager Classe: p> puis sur le côté client, vous pouvez dire p> vous pouvez le refroidir dans une méthode appelée SETUSERNAMEFOCUS () CODE> Par exemple, puis appelez cette méthode sur n'importe quel événement côté client que vous souhaitez. Une pratique populaire est par exemple de garder l'accent sur un certain domaine lorsque l'utilisateur clique sur un emplacement de la page. Par exemple, votre élément HTML focus () code> disponible pour les contrôles d'interface utilisateur. Cela appliquera l'accent sur le contrôle lorsque votre page rendra dans le navigateur. Cependant, à la suite de l'interaction de l'utilisateur avec d'autres éléments de la page, vous le perdez. P> LI>
Focus () CODE>: P>
txtaSername code>. Selon la mise en page de votre page, cela sera moins probable le cas et vous pourriez avoir des problèmes si vous modifiez la mise en page, ce n'est donc pas vraiment la meilleure pratique. P>
Body CODE> pourrait ressembler à ceci si vous ne voulez jamais perdre la mise au point de votre élément: p>
<body onload="setUserNameFocus();" onclick="setUserNameFocus();">
Le lien vers les ClientscriptManager est le mauvais. Cela pointe vers l'API obsolète. Je reçois une erreur lorsque vous essayez de modifier la réponse. Je vais essayer de le modifier plus tard. Entre temps, le lien vers la référence correcte est celui-ci: msdn.microsoft.com/en-us/library/...
Il existe une approche facile de cela.
dans Visual Studio, placez les éléments suivants dans la page_Load Event ... p> veuillez marquer comme "Répondu", si qui répond à votre question. P> p>
sur le côté client ou en code - derrière?