我正在使用一个简单的ASP.NET C#应用程序,它使用USB条形码扫描器。我有一个详细信息视图,默认情况下在底部插入提交按钮。当页面加载时,表单从URL中获取ID并将其输入到第一个字段,然后将光标焦点设置为第二个字段。使用IF语句处理回车键
默认情况下,USB扫描仪输入扫描的数字,然后输入Enter键。我想提出一个处理程序在那里,基本上说是这样的:
- 如果光标在TextBox2中,并按下Enter键,保持数据 TextBox2中移动光标到textbox3。
- 如果光标在文本框3中并按下回车键,则将数据保存在文本框3中并点击提交按钮。
这个想法是,用户可以扫描表格中每个文本框中的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);
}
}
}
当使用'textbox1'完成时,你能否检查一下哪个控件当前有焦点并设置它呢?例如,如果'tbox2'有焦点,'SetFocus(tbox3)'? – Brian 2013-02-26 20:48:06