我正在使用USB条形码扫描仪的简单ASP.NET C#应用程序上工作。我有一个“详细信息”视图,默认情况下默认为“插入”,底部带有“提交”按钮。页面加载时,表单从URL中获取ID,并将其输入到第一个字段,然后将光标焦点设置到第二个字段。

USB扫描器默认输入要扫描的数字,然后按Enter键。我想在其中放置一个处理程序,该处理程序基本上表示以下内容:


如果光标在textbox2中并且按下Enter键,则将数据保留在
textbox2并将光标移动到textbox3。
如果光标在textbox3中并且按下Enter键,则将数据保留在
textbox3,然后点击提交按钮。


这个想法是,用户可以连续扫描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);
            }
        }
    }

最佳答案

但是我认为输入流程已经可以了吗?
为什么不仅使用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
   }
});


如果输入流程不起作用,则可以为表单配置它。

关于c# - 使用IF语句处理Enter键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15098808/

10-11 20:26