자바스크립트에서 서버 함수 실행하기는 다음과 같이 하시면 됩니다..

가령 id 가 btnTest 라는 버튼을 클릭하면

서버측에서

private void btnTest_Click(object sender, System.EventArgs e)

{
    Response.Write(" 뭔가를 하겠죠.^^  ");  
}

함수가 실행되게됩니다.

자바스크립트에서 위의 함수가 실행되게 하고 싶으시면요..

가령  Search() 라는 자바스크립트 함수에서 위의 함수가 실행되게 하고 싶으실때는...

function Search()

{
    <%=Page.GetPostBackEventReference(btnTest)%>;
}

이렇게 하시면 됩니다.
나중에 렌더링된 걸 보면
위의 스크립트가

function Search()

{
    __doPostBack('btnTest', '');
}

이렇게 렌더링된 걸 보실 수 있습니다.
ASP.NET 에서 내부적으로 PostBack 하는 함수는 모두 다 저런방법으로 구성되어있습니다.
직접 __doPostBack('컨트롤의 렌더링된 name', '') 이렇게 하실수도 있지만 다음 버전에서도 함수이름이
__doPostBack 이라는 법이 없으니깐 저렇게 서버에서 생성하도록 하는게 좋을 것 같습니다.(바뀌면 좀 곤란한데.^^)
만약에 저렇게 이벤트 핸들러가 아니구 커스텀 함수를 실행시키고 싶을 때가 있죠..
그럴때도 어차피 위와 같이 이벤트 핸들러를 사용해야 합니다.
저는 보통 LinkButton 을 사용하는 데요..
LinkButton 을 하나 갖다놓고 가령 id 를 lbnTest 라고 하면 Visible 속성을 false 로 설정하고

위에처럼 자바스크립트 함수를 정의하고요

function Search()
{
    <%=Page.GetPostBackEventReference(lbnTest)%>;
}

코드비하인드에서는 클릭 이벤트 정의를 다음과 같이 커스텀 함수를 넣어서 정의하시면 됩니다.

private void lbnTest_Click(object sender, System.EventArgs e)
{
    Search();
}

// 커스텀 함수
private void Search()
{

}

Posted by 초이^^ 트랙백 0 : 댓글 1