Valeur numérisée (à l'aide du scanner) dans la zone de texte
Je suis en utilisant le Scanner(modèle de base) scanner le code-barres. Code-barres scanné sera capturé dans une zone de texte. Dans txtBarcode_TextChanged cas j'obtiens le code-barres pour accéder à.
Problème:
Si j'ai cliqué sur le scanner plus d'une fois, le code-barres obtient ajouter à la valeur précédente.
Code:
protected void txtBarcode_TextChanged(object sender, EventArgs e)
{
string txt = this.txtBarcode.Text;
this.txtBarcode.Text = string.Empty;
}
source d'informationauteur Geeth
Vous devez vous connecter pour publier un commentaire.
La chose avec les scanners de codes à barres, c'est qu'ils sont généralement se présenter à la recherche comme une norme HID clavier. Par conséquent, chaque nouveau code scanné est bien "tapé" après la précédente. Une solution que j'ai utilisé dans le passé pour voir comment beaucoup de temps passe entre les touches dans cette zone de texte. Si c'est plus de 10 millisecondes (ou autour de cette valeur, je crois que c'était la plus grande quantité de temps nécessaire pour le scanner, j'ai été à l'aide de "type" d'un ensemble de code), alors c'est un nouveau code à barres, et vous devez supprimer tout ce qui est avant elle.
Je n'ai pas de IDE à la main, de sorte que la plupart de la classe/méthode noms sont probablement loin, mais quelque chose comme un exemple:
Je pense que cela devrait le faire. Cela fonctionne parce que l'événement KeyPress se produit avant le caractère est ajouté, de sorte que vous pouvez effacer la zone de texte premier.
Modifier: À mettre en place, je suppose que l'endroit d'où vous
txtBarcode.TextChanged += txtBarcode_TextChanged
au lieu de cela vous avez untxtBarcode.KeyPress += txtBarcode_KeyPress
. Vérifiez le nom de l'événement est à droite si.Edit 2:
la Version jQuery:
En supposant que ce HTML (puisque vous êtes à l'aide d'ASP, votre source pour la balise d'entrée sera différent, mais le résultat sera toujours
id
attribut, ce qui est vraiment la seule qui compte):Puis ce javascript fonctionne:
Il semble que (au moins dans un navigateur web) 50 millisecondes est le temps nécessaire pour permettre entre les personnages. J'ai testé cela dans Firefox, Chrome et ie 7.
essayer de changer TextChanged gestionnaire d'événement de type:
Il vous sélectionnez le texte dans la zone de texte après la lecture du code et de le réécrire sur les autres lire. + il sera plus approprié pour les utilisateurs de copier ou de le modifier à la main
La plupart des scanners peuvent être programmés pour "appuyez sur enter" après la numérisation, consultez votre manuel d'utilisateur. Vous pouvez utiliser une pression de Touche ou de l'événement Keydown gestionnaire de vérifier pour la touche "entrée" et l'utiliser comme délimiteur pour votre code-barres. Vous pouvez également utiliser un signe de séparation, si vous préférez.
Si vous assignez la
txtBarcode.value += barcode
de le modifier pourtxtBarcode.value = barcode