문제는 간단히 해결된다.
엔터키이벤트가 일어날 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;}";
이렇게 버튼의 유니크아이디를 가져와서 버튼 이벤트를 일어나게 하였다.
'.NET > asp.net' 카테고리의 다른 글
특정 페이지 존재 여부 확인 (0) | 2013.05.06 |
---|---|
웹 폰트 적용중 생긴 문제점 (0) | 2011.11.21 |
자바스크립트에서 asp.net 비하인드 코드 실행하기 (2) | 2011.01.14 |
asp.net 쿠키 생성, 사용, 삭제 (0) | 2011.01.10 |
뒤로 가기 구현 (0) | 2010.11.07 |
해당 컨트롤에 코드 블록(<% ... %>)이 포함되어 있으므로 Controls 컬렉션을 수정할 수 없습니다. (0) | 2010.11.07 |
CheckBoxList 다중선택 정보 읽어와 체크시 문제 (0) | 2010.11.07 |
asp.net CheckBoxList 다중선택 저장, 읽기 (0) | 2010.11.06 |
asp.net에서 post전송 (0) | 2010.07.09 |