2009-10-26 7 views
1
<asp:UpdatePanel ID="UpdatePanel2" runat="server" 
    OnLoad="UpdatePanel2_Load" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <script type="text/javascript"> 
      myFunction(); 
     </script> 
     <asp:Label ID="Label1" runat="server" Text="1" Width="18px"></asp:Label> 
    </ContentTemplate> 
</asp:UpdatePanel> 

의 C# 자바 스크립트 함수를 호출 할 수 있습니다 다음을 Label1의 값이 변화어떻게 된 UpdatePanel 업데이트 후

if(condition) 
{ 
     UpdatePanel2.Update(); 
} 
protected void UpdatePanel2_Load(object sender, EventArgs e) 
{ 
     Label1.Text += 1; 
} 

을하지만()하여 myFunction를 호출하지 않습니다. 몇 가지 조건이 있지만 자동 호출에 setTimeout을 사용하지 않고 한 번 더 호출하고 싶습니다. 몇 가지 아이디어가 있습니까?

답변

3

UpdatePanel이 DOM을 업데이트하고 스크립트 블록을 DOM에 다시 작성하면 다시 실행되지 않습니다. 당신은 UpdatePanel 후 화재 완료하고 JS 블록을 다시 실행되는 클라이언트 측 이벤트를 얻을 필요가 :

<script type="text/javascript"> 
    function handleEndRequest(sender, args) 
    { 
     var panel = document.getElementById(sender._postBackSettings.panelID); 
     var scripts = panel.getElementsByTagName('script'); 
     for(var i=0;i<scripts.length;i++) { 
      eval(scripts[i].innerHTML); 
     } 
    } 

    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(handleEndRequest); 
</script> 
+0

를 새로 고쳐 작동 만든 이 함수는 함수 또는 머리글 바로 앞에 있습니다. 죄송합니다, 나는 자바 스크립트에 새로운 사람이 내게 더 많은 세부 사항을, 덕분에 – Dirk

+0

줄 수 있고 헤더 및 내 updatepanel2이이 함수를 넣었지만 여전히 작동하지 않는, 자세한 내용을 원합니다. – Dirk

+1

@Dirk 페이지 하단에 '' –

0

나는 그냥해야 어디 궁금 전체 페이지

관련 문제