TextBox에서 엔터키 이벤트 지정
문제는 간단히 해결된다.
엔터키이벤트가 일어날 TextBox = txtTest1
이벤트실행시킬 버튼 = btnTest1
서버단의 페이지 로드부분
protected void Page_Load(object sender, EventArgs e)
{
txtTest1.Attributes.Add("onkeypress","if(event.keyCode == 13){" + this.Page.ClientScript.GetPostBackEventReference(btnTest1, null) + ";return false;}");
}
이렇게만 하면 텍스트 박스에서 엔터 쳤을때 해당 버튼의 이벤트가 실행되게 된다
하지만 자바스크립트로 유효성 검사를 실시 할때는 위 코드로는 스크립트를 발생시킬 수 없다
txtTest1.Attributes.Add("onkeypress","if(event.keyCode == 13){ document.getElementById(btnTest1).click();return false;}";
이렇게 처리하면 유효성 검사 까지 실행 가능하다.
또 문제가 있는데 버튼이 서버 컨트롤일 경우 <%= %> 컨트롤 블록에서 문제가 있을 수 있다.
< 이 문자가 < 로 바뀔수 있기 때문이다.
나는 이 문제 해결을 위해서 할수 없이 UniqueID를 쓸수 밖에 없었다
txtTest1.Attributes.Add("onkeypress","if(event.keyCode == 13){ document.getElementById("+ btnTest1.UnqueID + ").click();return false;}";
이렇게 버튼의 유니크아이디를 가져와서 버튼 이벤트를 일어나게 하였다.