2

USB バーコード スキャナーを使用する単純な ASP.NET C# アプリに取り組んでいます。下部に [送信] ボタンがある [挿入] にデフォルト設定されている詳細ビューがあります。ページが読み込まれると、フォームは URL から ID を取得して最初のフィールドに入力し、カーソル フォーカスを 2 番目のフィールドに設定します。

デフォルトでは、USB スキャナはスキャンした番号を入力し、続いて Enter キーを押します。基本的に次のようなハンドラーを配置したいと思います。

  • カーソルが textbox2 にあり、Enter キーが押された場合、データを textbox2 に保持し、カーソルを textbox3 に移動します。
  • カーソルが textbox3 にあり、Enter キーが押された場合は、データを textbox3 に保持して送信ボタンを押します。

アイデアは、ユーザーがフォームの各テキストボックスに入力する行の 3 つまたは 4 つのバーコードをスキャンできるということです。エンターキー)。

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);
            }
        }
    }
4

1 に答える 1

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
   }
});

入力フローが機能しない場合は、フォームに対してこれを構成できます。

于 2013-02-26T20:51:44.767 に答える