2011-08-26 3 views
2

ASP.NET 코드에서 전역 JavaScript 변수를 업데이트하려고합니다. UpdatePanel 업데이트를 발사하는 (느릅 나무 코드에 표시되지 않음) 트리거를 가지고UpdatePanel에서 JavaScript 변수 업데이트

<asp:UpdatePanel ID="UpdatePanel" runat="server"> 
    <ContentTemplate> 
    <script type="text/javascript"> 
     var global1= <%= this.Method(parameter) %>; 
     var global2= <%= this.Method(parameter) %>; 
    </script> 
</ContentTemplate> 
</asp:UpdatePanel> 

: 내가 무엇을 시도한 것은이 같은 UpdatePanel을 사용하는 것입니다. 나는 또한 대해 EndRequest 방법이 있습니다

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
prm.add_initializeRequest(InitializeRequest); 
prm.add_endRequest(EndRequest); 

function EndRequest(sender, args) { 
    compute(); 
} 

내가 (asyncpostback가 발생했을 때) 나는 perfecly 그의 새로운 값으로 갱신하는 방법을 전역 변수를 볼 수있는 코드를 검사하는 '방화범'같은 소프트웨어를 사용하는 경우. 불행히도 계산 함수 안에 값을 보여주는 경고를하면 이전 값을 갖습니다.

어디서 실수입니까? 이 방법으로 ASP.NET에서 변수를 업데이트 할 수 있습니까?

고마워요)

답변

1

정말이 스레드에 참여해 주셔서 감사드립니다.

내가 마지막으로 (ASP.NET)를 내 초기 아이디어를 변경하고 PageMethods 전적으로 자바 스크립트/jQuery로 작업을 수행하기로 결정했습니다 :

http://msdn.microsoft.com/es-es/library/byxd99hx(v=vs.80).aspx http://stackoverflow.com/questions/563133/using -jquery-to-call-a-webmethod

나는 그들을 재사용 할 수있는 가능성이 거의없는 '지역'해결책으로보고 있기 때문에 그다지 좋아하지 않는다. 하지만 그들은 $ .ajax jquery 함수와 함께 사용할 수있는 JSON 응답을 자동으로 리턴한다.

인터페이스가있는 느낌이 더 좋습니다.

다시 한 번 감사드립니다.

3

이 일을보십시오 : 업데이트 패널의 외부 2 개 전역 변수를 넣습니다. 그런 다음, 코드에서 된 UpdatePanel 다시 게시 및 비동기 포스트, 수행 할 때

그 진술에
ScriptManager.RegisterClientScriptBlock(..); 

는 수행

"global1 = '" + this.Method(parameter) + "';"; 
"global2 = '" + this.Method(parameter) + "';"; 

그래서 본질적으로, 당신은 변수에 대한 업데이트 문을 작성합니다.

HTH. 가능성이

var global1= "\"" + <%= this.Method(parameter) %> + "\""; 

또는 : 당신은 뭔가이 시도 할 수

1

var global = "'" + <%= this.Method(parameter) %> + "'"; 

나는 또한 뭔가 다른 것이 아니라면 당신이 업데이트 패널에 넣을 필요가 없습니다 확신 그걸로 보지 않을거야.

관련 문제