La capture de pression de touche dans ASP.NET zone de texte
Est facile wayt o la capture d'une touche (dans mon cas: F5) dans un ASP.NET zone de texte, et l'exécution d'une méthode de serveur comme réponse?
J'ai créé un simple SQL frontend, et de sortir de l'habitude (à partir de SQL Server Mgmt Studio), je garde en appuyant sur F5 quand je suis fait taper ma requête, mais que toujours actualise le navigateur, au lieu de l'exécution de ma requête SQL 🙂
Puis-je faire dans ASP.NET en utilisant éventuellement un peu de Javascript ou jQuery ?
Marc
Mise à JOUR:
J'ai ce code jQuery sur mon ASP.NET page:
$(document).ready(function() {
$("#<%= txtQuery.ClientID %>").keydown( function (e) {
if (e.keycode == 116) {
$("#<%= btnExecute.ClientID %>").trigger('click');
}
});
});
J'ai essayé diverses combinaisons de "e.qui", "e.keycode" et les diverses valeurs de mot de code - mais aucun n'a l'air de fonctionner. Je suis à l'aide de MS IE 7 sur ma machine de dev. txtQuery
est l'ASP.NET zone de texte où je tape ma requête, et btnExecute
est l'ASP.NET bouton qui va envoyer la requête au Serveur SQL à exécuter.
Des idées? Dois-je supprimer le standard de gestion des événements, en quelque sorte? Et si oui: alors, comment puis-je le réaliser?
Oui, je sais et remarqué - mais pourquoi je ne peux pas piéger par exemple F12 ?? Qui n'est pas utilisé pour quoi que ce soit par le navigateur par défaut.....
OriginalL'auteur marc_s | 2009-08-28
Vous devez vous connecter pour publier un commentaire.
Voir pression de touche( fn )
et
permettra d'identifier la touche enfoncée et je pense que le code de touche pour la touche F5 est 116
Pour le déclenchement d'un événement vous pouvez utiliser le
déclencheur méthode
Edit:
Si vous avez besoin de prendre F5 puis donner un gestionnaire d'événement keydown
remplacer "// faire quelque chose ici" avec un appel AJAX vers le serveur si la touche qui a été enfoncée la touche F5
Ne semble pas fonctionner - F5 encore actualise le navigateur, et l'utilisation de l'e.qui == 123 pour F12 ne rien faire du tout 🙁
OriginalL'auteur rahul
Si vous voulez faire un appel côté serveur depuis le client, vous devrez soit utiliser du javascript pour lancer une publication, ou d'effectuer un appel AJAX à votre demande.
Tout d'abord, vous avez besoin pour gérer vos touches. jQuery fournit la pratique
touche
méthode pour capturer les touches sur un élément:Malheureusement, les touches de Fonction (F1-F12) besoin d'un traitement spécial dans certains navigateurs, où ils ne génèrent pas de
keypress
événements. Pour capturer les touches de fonction de manière fiable, sur tous les navigateurs modernes, vous aurez à regarder à l'aide dekeydown
etkeyup
événements. Je vous suggère de lire cet article à comprendre comment interpréter les événements clés dans les navigateurs que vous soutenez.Ensuite, vous aurez besoin de créer un ASP.NET méthode web. La façon de le faire est de créer une méthode statique sur votre page (ou une page séparée si vous le souhaitez), puis décorer avec l'attribut WebMethodAttribute:
Enfin, vous pouvez utiliser jQuery pour appeler cette méthode et de faire quelque chose avec la réponse:
Sur un appel réussi, ce petit bout de code va afficher un message d'alerte "Bienvenue dans Le Monde de Demain!", transmis au navigateur, comme une réponse de l'ASP.NET méthode.
La réponse courte est que ce que vous demandez est tout à fait possible, cependant il n'est pas aussi simple que vous pourriez imaginer. La dispute sur la détection des touches peut être particulièrement gênant. Bonne chance!
OriginalL'auteur Paul Turner
Pour soigner le comportement par défaut d'un événement, vous devez arrêter le phénomène de propagation de la hausse des éléments. Pour ce faire, il suffit de retourner
false
à partir de votre gestionnaire d'événement:Malheureusement, selon la façon dont le navigateur interprète les touches de fonction, il peut exiger la prévention
keydown
etkeyup
événements étant élevé qui touche particulière en plus du comportement ici.keydown
etkeyup
événements dans MS IE 7, et essayé les deuxe.which
ete.keycode
- sans succès 🙁 Suppose que je vais devoir s'habituer à pas en appuyant sur F5 dans le navigateur de requêtes SQL fenêtre 🙁OriginalL'auteur Paul Turner
Vous tout simplement obtenir l'id du client de l'ASP.NET zone de texte en jquery.
Puis l'appel ajax via jquery comme suit.
OriginalL'auteur Hemal