我正在开发一个使用USB条形码扫描仪的简单ASP.NET C#应用程序。我有一个详细信息视图,默认为在底部插入一个提交按钮。当页面加载时,表单从URL中获取ID并将其输入到第一个字段,然后将光标焦点设置为第二个字段。
USB扫描器默认输入扫描的数字,然后输入Enter键。我想在那里放一个处理程序,基本上就是这样:
这个想法是用户可以在表格中的每个文本框中连续扫描3或4个条形码,而不是A)每次都触发提交按钮,B)在扫描之前不必点击每个字段(如果我禁用了Enter键)。
这是我的代码的开头,它从URL抓取ID并填充textbox1,然后将焦点设置为textbox2。
protected void DetailsView1_DataBound(object sender, EventArgs e)
{
if (DetailsView1.CurrentMode == DetailsViewMode.Insert)
{
if (!string.IsNullOrEmpty(Request.QueryString["id"]))
{
TextBox tbox1 = DetailsView1.FindControl("TextBox1") as TextBox;
TextBox tbox2 = DetailsView1.FindControl("TextBox2") as TextBox;
if (tbox != null)
{
tbox.Text = Request.QueryString["id"].ToString();
}
SetFocus(tbox2);
}
}
}
答案 0 :(得分:2)
但我认为输入流程已经有效了吗? 为什么不仅使用JQuery为文本框添加流?
$('#TextBox1').keydown(function(e) {
var code = (e.keyCode ? e.keyCode : e.which); // Crossbrowser fix
if(code === 13) { //If Enter keycode
$('#TextBox2').focus(); // Set focus to second textbox
e.preventDefault(); // Prevent that the enter does a submit
}
});
如果输入流程不起作用,您可以为表单配置。