2009-12-03 5 views
0

특정 이벤트가 발생한 후 페이지에 AJAX를 삽입하여 한 번만 발생하는 포스트를 다시 만들고 싶습니다. ASP.NET AJAX : 포스트 백 만들기

현재 내가 가진 :

string script = "<script language='Javascript'>" + 
            "__doPostBack('GetSpreadsheet', '');" + 
           "</script>"; 

Page.ClientScript.RegisterStartupScript(this.GetType(), "DownloadExcel", script); 

그러나, 나는이 작업을 수행 한 후, 모든 것들을 다시 바로 첫 번째 대신 GetSpreadsheet의 이벤트 대상이 있습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

해당 코드는 어디에 있습니까? 이벤트 처리기에서? – joerage

+0

@joerage : 예. 주어진 이벤트가 발생하면 스크립트를 삽입합니다. 그런 다음 요청의 EventTarget에 대한 PageLoad 이벤트 핸들러를 확인합니다. 그러나 다른 단추를 클릭하더라도 EventTarget은 "GetSpreadsheet"로 남아 있습니다. –

답변

2

ScriptManager.RegisterStartupScript Method (Control, Type, String, String, Boolean)을 사용해보세요.

비고란에 다음 내용을 설명하는 텍스트가 있습니다. 블록이 등록되어있는 제어 업데이트되는 이다 UpdatePanel 컨트롤 내부 때만이 방법을 사용하여 등록 이다

시작 스크립트 블록은 페이지 전송된다.

+0

이 코드는 UserControl에서 사용하고 있습니다. 사용자 정의 컨트롤을 업데이트 패널에 넣어야합니까? –

0

스크립트를 등록하기 전에 IsStartUpScriptRegistered() 메소드를 확인하십시오.

if (!(Page.ClientScript.IsStartupScriptRegistered("DownloadExcel"))) 
    Page.ClientScript.RegisterStartupScript(this.GetType(), "DownloadExcel", script); 
+0

나는 그것을 시도했지만 그것을 고치지 않았다. –