2012-01-31 5 views
0

__DoPostBack을 사용하여 서버 측 메서드를 호출하고 싶지만 내 페이지에서 숨겨진 ASP runat 서버 컨트롤을 원하지 않습니다. 그것을 트리거하는 컨트롤의 이름이 아니라 이름으로 서버 측 메서드를 호출 할 수 있습니까?숨겨진 컨트롤없이 __DoPostBack을 사용하여 codebehind 메서드를 대상으로 지정하는 방법

문제는 aspx 페이지에 onclick = "ExportButton_Click"이라는 asp 버튼이 있는데, 버튼을 클릭하면 ExportButton_Click 코드 숨김 (서버 측) 메소드가 호출됩니다. 내 문제는, 내가 클릭하면, 똑같은 일을 할 것입니다 버튼을 동적으로 만들려고 노력하고 있기 때문에, ASP에서 버튼을 제거하고 싶습니다. 바로 지금 내 동적으로 생성 된 버튼은 ExportButton_Click을 트리거하는 asp Button을 대상으로하는 doPostBack javascript 함수를 호출합니다. 그래서 ... asp 버튼을 사용하지 않고 __doPostBack을 사용하여 ExportButton_Click codebehind 메소드를 호출 할 수 있습니까? 미리 감사드립니다.

답변

2

이벤트 대상 인수를 __DoPostBack('myEvent') 메소드로 전달하십시오.

if (Request.Form["__EVENTTARGET"] == "myEvent") 
{ 
    //call your button click function, and pass the button to it (can pass null as the EventArgs) 
    Button1_Click(Button1, null); 
} 
1

이 두 가지 방법은 서버 측 친구 : 당신의 코드 숨김 Page_Load()에서 다음

,이 같은 곳 코드가

this.Page.ClientScript.GetPostBackEventReference 
this.Page.ClientScript.GetPostBackClientHyperlink 
그들은 자바 스크립트를 생성하는 데 사용할 수 있습니다

서버 사이드 이벤트에 대한 링크.

관련 문제