Sous ASP.NET, il est possible de positionner un internaute sur un contrôle précis avec un Postback. Le secret de cette méthode ? Facile! Il suffit d'utiliser la fonction JavaScript focus(). Mais comment effectuer ce tour de force en utilisant ASP.NET seulement et non JavaScript.
ASP.NET (VB) :
Page.SetFocus(MonControle.ClientID)
Le tout fonctionne parfaitement lors d'un Postback complet de la page, mais quant est-il lors d'un Postback partiel tel que lorsqu'on utilise un Update Panel provenant des extensions Ajax de Microsoft ? Le tout ne fonctionne pas. Il faut alors utiliser la fonction suivante :
ASP.NET (VB) :
ScriptManager.GetCurrent(Page).SetFocus(MonControle)
Ça fonctionne ? Parfaitement! Si cela ne fonctionne pas posez-vous la question : Est-ce que le contrôle que je veux positionner le focus autorise d'avoir le focus ? Tel un label n'accepte pas de focus ...