Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COMMENT FORCER LE FOCUS SUR UN CONTRÔLE D'UNE PAGE CLIENT DEPUIS LE SERVEUR


Information sur la source

Catégorie :ASP.Net Classé sous : focus, control, forcer, server, setfocus Niveau : Débutant Date de création : 09/09/2005 Date de mise à jour : 09/09/2005 13:10:54 Vu : 6 646

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

Description

Contrairement à ce que je pensais, on peut forcer le focus sur un contrôle d'une page client depuis le serveur, à l'aide de cette astuce.
SI je veux par exemple que des contrôles(textbox ou DropdownList), qui provoquent un aller-retour serveur, gardent le focus.
Pour que ce focus se déplace sur le contrôle suivant, c'est à peine plus compliqué.
Il doit y avoir d'autres application, mais d'aucuns diront que je découvre la lune ...
 

Source

  • 'Il faut d'abord une <form> contenant des contrôles serveur p. ex.:
  • <form id="Form1" method="post" runat="server">
  • <asp:TextBox id="TextBox1" runat="server" AutoPostBack="true"></asp:TextBox><br>
  • <asp:TextBox id="TextBox2" runat="server" AutoPostBack="true"></asp:TextBox><br>
  • <asp:DropDownList id="DropDownList1" runat="server" Width="122px" AutoPostBack="true"/>
  • </form>
  • 'on remarque les"AutoPostBack="true""
  • 'Ensuite la sub gérant les évènements:
  • Private Sub Determin_Sender(ByVal sender As System.Object, ByVal e As System.EventArgs)
  • Handles DropDownList1.SelectedIndexChanged, TextBox1.TextChanged, TextBox2.TextChanged
  • 'du code serveur éventuellement-----
  • '------------------------------------
  • 'et cette ligne donne l'ID du sender:
  • envoyeur = Request.Form("__EVENTTARGET").ToString
  • 'on peut rajouter ici les aménagements souhaités:
  • 'par exemple :
  • if envoyeur="TextBox1" then
  • envoyeur="textbox2" 'pour envoyer le focus automatiquement sur la 2e boîte
  • end if
  • End Sub
  • 'On aura pris soin de déclarer "envoyeur" comme : Public envoyeur as String
  • 'enfin on insère le script-client avant la balise </head> :
  • function forcefocus()
  • {
  • document.Form1.<%=envoyeur%>.focus();
  • }
  • 'il reste à déclencher l'exécution avec :
  • <body MS_POSITIONING="GridLayout" onload="javascript:forcefocus()">
'Il faut d'abord une <form> contenant des contrôles serveur p. ex.:

<form id="Form1" method="post"  runat="server">

<asp:TextBox id="TextBox1" runat="server" AutoPostBack="true"></asp:TextBox><br>
<asp:TextBox id="TextBox2" runat="server" AutoPostBack="true"></asp:TextBox><br>
<asp:DropDownList id="DropDownList1" runat="server" Width="122px"  AutoPostBack="true"/>

</form>
 'on remarque les"AutoPostBack="true""

'Ensuite la sub gérant les évènements:

    Private Sub Determin_Sender(ByVal sender As System.Object, ByVal e As System.EventArgs)
 Handles DropDownList1.SelectedIndexChanged, TextBox1.TextChanged, TextBox2.TextChanged
        'du code serveur éventuellement-----

        '------------------------------------
        'et cette ligne donne l'ID du sender:

        envoyeur = Request.Form("__EVENTTARGET").ToString

	'on peut rajouter ici les aménagements souhaités:
	'par exemple :
	if envoyeur="TextBox1" then
		envoyeur="textbox2" 'pour envoyer le focus automatiquement sur la 2e boîte
	end if 

    End Sub

'On aura pris soin de déclarer "envoyeur" comme : Public envoyeur as String 

'enfin on insère le script-client avant la balise </head> :
	function forcefocus()
	{
	document.Form1.<%=envoyeur%>.focus();
	}
'il reste à déclencher l'exécution avec :

	<body MS_POSITIONING="GridLayout" onload="javascript:forcefocus()">

Conclusion

Il est possible de faire beaucoup plus compliqué pour déterminer qui aura le focus, car on dispose de la sub-serveur "Determin_Sender" pour le faire. On peut faire des tests, et décider l'envoi du focus selon la valeur choisie par exemple.
Si ça peut servir...
Bye

 

Historique

09 septembre 2005 13:10:54 :
rien oublié?

Commentaires et avis

Aucun commentaire pour le moment.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

CommandName sur Server Control [ par lops91 ] Bonjour, Dans l'entreprise ou je suis, il existe un server control qui permet de créer des boutons personnalisé. Tout fonctionne très bien jusqu'au jo Gestion de formulaire [ par Fjohn666 ] Bonjour à tous, je suis entrain de faire une gestion de formulaire en c# mais je me retrouve confronté à un (ou plusieurs )problemes : Le principe est je cherche un control [ par tamort ] bonjour tous le monde:je veux rendre l'aspet de ma page web personnalisable alors je me demande est ce que le controle FontDialog et le controle Color Ajout/Affichage photo dans SQL Server 2005 [ par BrunoCheyrou ] Bonjour, je me suis renseigné concernant ce sujet mais jamais obtenu de réelle réponse. J'aimerai via un formulaire ajouter à chaque client une photo Ecrire dans un fichier sur le server [ par vegetalain ] salut, en espérant être dans la bonne rubrique, voilà mon souci : il faudrait que je puisse écrire depuis flash, dans un fichier texte... la question problème d'appel d'une procédure de mon usercontrol [ par Kyoto ] Hello tout le monde!J'aimerai appeler une procedure de mon usercontrol, donc pour celà je fais comme ça :&lt;object id="myControl1" height="464" width Ecran de chargement d'une page [ par maxime2026 ] Hello à vous et au futur lecteur ^^Bon petite présentation (c'est mon premier post ouhla que d'émotion) donc je suis un jeune programmeur qui vient à UserControl et PostBack [ par SuperBouly ] bonjour, Certains diront que je découvre la lune...Voici ma découverte , source de mes ennuisJe cree Un userControl:&lt;%@<font Recherche de documentation : publication de site asp / windows server [ par tom741pawa ] Bonjour à tous,j'ai terminé un projet en asp.net et j'ai voulu essayer de le mettre sur un serveur que j'ai fait (avec windows server 2008).J'ai du ma


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.