아이디와 비밀번호를 입력 후 엔터 키를 입력할 때
로그인 버튼의 클릭이벤트를 실행시키고 싶을때가 있다.
일반적으로 텍스트박스에서 엔터키를 입력하면 포스트백이 자동으로 일어나지만
원하는 버튼 이벤트를 지정하고 싶을때는 다음의 방법을 사용한다.
<asp:TextBox ID="txtName" runat="server" Width="192px" style="width:108px;height:18px"> </asp:TextBox>
<asp:ImageButton ID="btnLogin" runat="server" ImageUrl="images/main_login_b.gif" OnClick="btnLogin_Click" />
<asp:TextBox ID="otherTextBox" runat="server" Visible="false"></asp:TextBox>
<asp:ImageButton ID="btnOtherLogin" runat="server" ImageUrl="images/arrow_01.gif" Visible="false" TabIndex="4" OnClick="btnOthersLogin_Click" />
protected void Page_Load(object sender, EventArgs e)
{
//텍스트박스에서 엔터치면 버튼 클릭이벤트 작동
othersPass.Attributes["onkeypress"] = "if (event.keyCode==13){" +
Page.GetPostBackEventReference(btnOthersLogin) + "; return false;}";
}
페이지가 로드될 때 일어나도록 Page_Load 안에 넣어주고
위의 예제에서는 입력하는 textbox 의 ID="otherTextBox"
그리고 실행하고자 하는 Button 의 ID="btnOthersLogin" 이라고 주었다.
Page_Load에 위의 코드를 입력하지 않고 otherTextBox에서 엔터 키를 치면
내가 원했던 "btnOthersLogin "의 클릭이벤트가 실행되지 않고 "btnLogin"의 클릭이벤트가 실행된다.
othersPass.Attributes["onkeypress"] = "if (event.keyCode==13){" +
Page.GetPostBackEventReference(btnOthersLogin) + "; return false;}";
에서 keyCode==13 이 엔터키를 의미하고 GetPostBackEventReference(btnOthersLogin) 가 ""btnOthersLogin "의 이벤트를 실행시키는 함수이다.
출처 : http://hybridsoul.tistory.com/42
-------------------------------------------------------------------------------------------------
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>
출처 : http://poco.egloos.com/355113
'소프트웨어 > C# & ASP.NET' 카테고리의 다른 글
C#의 디버깅과 오류 처리 (0) | 2008.07.24 |
---|---|
닷넷 트랜잭션 정리 (0) | 2008.07.18 |
{.NET 3.5 Service Pack 3.5 Beta 1} 1. 환경 설정과 설치하기 (0) | 2008.06.27 |
patterns & practices에서 Enterprise Library 4.0이 나왔습니다. (0) | 2008.06.17 |
Scott Hanselman의 Tool List (0) | 2008.06.10 |