2013-02-26 4 views
2

나는 USB 바코드 스캐너를 사용하는 간단한 ASP.NET C# 응용 프로그램을 개발 중입니다. 기본보기의 하단에 제출 단추가있는 세부 정보보기가 있습니다. 페이지가로드되면 양식에서 URL의 ID를 가져 와서 첫 번째 필드에 입력 한 다음 커서 포커스를 두 번째 필드로 설정합니다.IF 문으로 Enter 키 처리

USB 스캐너는 스캔 한 번호와 기본으로 Enter 키를 입력합니다. 커서가 TextBox2를에있는 경우

  • 및 키를 누르면 입력 TextBox2를의 데이터를 유지하고 textbox3에 커서를 이동 : 나는 기본적으로 같은 것을 말한다 거기에 처리기를 넣어 싶습니다.
  • 커서가 textbox3에 있고 Enter 키를 누른 경우 데이터를 textbox3에 보관하고 제출 버튼을 누릅니다.

아이디어는, 사용자가 각 필드에 클릭하지 않음) 제출 버튼마다 발동)가없는 형태의 각 입력란에 연속 충전에 3-4 바코드를 스캔하고, B 수 있다는 종래 (Enter 키가 비활성화 된 경우) 스캔.

다음은 URL에서 ID를 가져와 textbox1을 채운 다음 텍스트 상자 2에 포커스를 설정하는 코드의 시작입니다.

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

'textbox1'을 사용하면, 현재 어떤 컨트롤에 포커스가 있는지 확인하고 설정할 수 없습니까? 예를 들어'tbox2'에 포커스가 있으면'SetFocus (tbox3)'? – Brian

답변

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

입력 흐름이 작동하지 않으면 양식에이를 구성 할 수 있습니다.

+0

필자의 경우 textbox2 뒤에 textbox3이옵니다. 바코드를 스캔하면 textbox2가 데이터로 채워지고 Enter 키가 눌러지고 양식이 제출됩니다. 그것은 모두 함께 textbox3을 건너 뜁니다. –

+0

이름은 예를 들어, Textbox2와 Textbox3에도이 예제를 사용할 수 있다는 것을 기억하십시오. e.preventDefault는 enter 키 입력이 실행되는 것을 방지하고 입력 한 텍스트 상자에 포커스를 설정합니다. 이 작업을하려면 내 예제의 Textbox1이 Textbox2이고 textbox2가 Textbox3이라고 생각할 필요가 있습니다. 그러나 이름은 스스로 편집 할 수 있습니다. – spons

+0

이름 변경을 이해합니다. 코드에서 어디로가는 지 혼란 스럽습니다. 일부 Google 푸를하고 있지만 머리 위를 아는 사람이라면 크게 감사 할 것입니다. jQuery에 대한 많은 noobie. –