[asp.net 2.0] 폼에서 엔터를 치는 경우[asp.net 2.0] 폼에서 엔터를 치는 경우

Posted at 2009/04/23 16:29 | Posted in Dev/ASP.NET

Asp.net 1.X시절

페이지내 버튼컨트롤이 여러개 위치했을때 텍스트박스에서 글을 입력 후 엔터를 칠 경우

원하지 않는 버튼이 클릭되는 골치아픈 현상이 있었습니다.

아래와 같이 자바스크립트를 속성에 추가하는 방법으로 처리했었죠.
 

텍스트박스.Attributes.Add("onkeypress", "if (event.keyCode == 13) {" +Page.GetPostBackEventReference(버튼컨트롤ID) + "; return false;}");

 

하지만 이 코드는 IE에서만 제대로 동작하더군요. ( FireFox에서 동작되지 않습니다.)

 

여러가지 해결책이 있겠지만

Asp.net 2.0에서 아주 간단하게 해결할 수 있는 방법을 소개해 드릴께요.

(다 알고 계시겠지만 혹시나 모르시는 분들을 위해 ^^;)

 

Panel로 영역을 설정하고 DefaultButton을 지정해 주면됩니다.

아래 코드를 보시면 쉽게 이해가 가실 것 같네요.

 

<asp:Panel ID="Panel1" runat="server" DefaultButton="Btn1" >
          <asp:textbox id="TextBox1" runat="server" />

          <asp:ImageButton id="Btn1" runat="server" ImageUrl="images/btn1.gif"  />

          <asp:ImageButton id="Btn2" runat="server" ImageUrl="images/btn2.gif"   />

</asp:Panel>

 Panel1내에 위치한 TextBox1에서 엔터키를 누를경우 항상 Btn1  클릭 처리됩니다.

 
저작자 표시 비영리

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기