2010-09-23 3 views
0

Je développe une application Web qui affiche les éléments d'une file d'attente de travail à un utilisateur. Lorsqu'un élément est sélectionné, l'application verrouille cet élément afin qu'aucun autre utilisateur ne puisse le sélectionner. En appuyant sur le bouton de retour dans l'application, il déverrouille l'élément.Exécution d'une fonction sur un trait de touche spécifique dans VB

Je souhaite être en mesure de déverrouiller l'élément si l'utilisateur appuie sur la touche de retour arrière. Je sais de quel code j'ai besoin pour le débloquer. J'ai juste besoin de savoir comment faire exécuter le code sur la touche retour arrière.

Le code que j'ai besoin d'exécuter sera le code côté serveur.

Merci d'avance.

+0

Hmm, backspace appelle la page retour dans les navigateurs par défaut. Je ne sais pas s'il est possible de le recharger. – Danil

+0

Oui et c'est le problème. Si l'utilisateur appuie sur le bouton retour arrière, le code pour déverrouiller un élément ne s'exécute pas. – GeekIT1001

Répondre

2
<script> 
    document.onkeydown = function (e) 
    { 
     if (window.event && window.event.keyCode == 8) { 
     __doPostBack('__Page', 'MyCustomArgument'); 
     } 
    } 
    </script> 

Si vous avez besoin d'exécuter du code sur le serveur, vous devez changer votre question en conséquence

EDIT:

  • Vous pouvez définir la valeur d'une HiddenField à F.E. "unlockItem" et effectuez un document.forms [0] .submit() et vérifiez la valeur masquée sur le serveur ou mieux:
  • Utilisez la fonction client __doPostBack générée à partir de ASP.Net pour soumettre la page (par exemple sur selectedIndexChanged d'une DropDownList). Vous pouvez même generate it from Codebehind si vous voulez le chemin le plus propre.

J'ai changé le code ci-dessus, mais je pense que votre prochaine question pourrait être comment vous devriez savoir quel élément a été sélectionné, n'est-ce pas? Ensuite, vous devez clarifier les éléments dont nous parlons. Sur Serverside vous obtenez les arguments passés avec:

If Page.IsPostBack Then 
    Dim eventArg As String = Request("__EVENTARGUMENT") 
End If 

End If

+0

oui, ça marche :). J'ai testé keypress et n'a eu aucun résultat. – Danil

+0

Je suis content que je puisse vous aider, n'oubliez pas de marquer comme réponse quand il est;) –

+0

Désolé, j'ai besoin d'exécuter du code sur le serveur. Plus précisément, j'ai besoin d'exécuter une mise à jour SQL. – GeekIT1001

Questions connexes