ASP.NET 엔터키 누르면 특정 버튼 클릭하게 하기

ASP.NET Page.GetPostBackEventReference()를 이용한 doPostBack

 

자바스크립트로 behind code의 메서드를 실행하고 싶은 경우가 있다.


이럴 경우 보통은 스크립트에서 __doPostBack() 메서드를 정의해서 사용하곤 한다. 하지만, 이는 좋지 못한 방법이다.

 

__doPostBack() 메서드는 .net에서 자동 생성하는 부분으로, 개발자가 별도로 작성하여도 바뀔 가능성이 있다. 또한, .net에서 자동으로 생성하지 않는 경우도 발생한다.

 

스크립트로 behind code의 메서드를 실행하고 싶을 때는 아래와 같은 방법을 권한다.

 

<%= Page.GetPostBackEventReference( WebFormButton ) %>

 

이는 postback이 발생하는 WebForm Control을 매개변수로 넘겨주면, 자동으로 __doPostBack()을 생성해 준다.


ex)
[Page.aspx]
btnOne -> HTML Input 컨트롤 - visible

<script language="javascript">
    function btnOneClick()
    {
        <%= Page.GetPostBackEventReference( btnTwo ) %>
    }
</script>

 

<input type="button" onclick="btnOneClick()">

 

[Page.aspx.cs]
btnTwo -> WebForm Button 컨트롤 - invisible

private void btnTwo_Click(...)
{
    ...
}

 

 

[추가사항 1]

onunload 이벤트시 처리하려면, btnTwo를 LinkButton으로 설정한다.

'Development > .NET' 카테고리의 다른 글

Tier와 Layer에 관한 이해  (0) 2007.08.16
HTTP Header Cache Control  (0) 2007.08.14
ASP.NET Web Applications (.NET 3.0)  (0) 2007.08.09
ASP.NET 페이지 실행 주기  (0) 2007.08.09
LINQ to SQL Debug Visualizer  (0) 2007.08.08