2010-07-28 3 views
0

UpdatePanel 내부의 리터럴 컨트롤에 쓰는 자바 스크립트가 있습니다. 나는 매 15 초마다 현재 시간을 알려주도록 설정했지만 항상 원래 시간을 얻는다. Firebug를 사용할 때 스크립트가 업데이트되고 있음을 알 수 있습니다. 부분 페이지를 새로 고침했기 때문입니까? 이 일을 어떻게 멈출 수 있습니까? OutputCache 지시문을 추가하여 캐싱을 시도하여 문제가 있는지 확인했지만 차이는 없습니다.자바 스크립트 업데이트 문제. ASP.net UpdatePanel

여기 코드 샘플입니다. 프런트 엔드 : 뒤에

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<asp:UpdatePanel ID="updTest" runat="server" UpdateMode="Always"> 
    <ContentTemplate> 
     <script type="text/javascript"> 
      function initScript(){ 
      <asp:literal id="litUpdateScript" runat="server" /> 
      } 
     </script> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger EventName="Tick" ControlID="panelRefresh" /> 
    </Triggers> 
</asp:UpdatePanel> 
<asp:Timer ID="panelRefresh" Interval="15000" runat="server"></asp:Timer> 

코드 :

Protected Sub panelRefresh_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles panelRefresh.Tick 
    Me.litUpdateScript.Text = "alert('" & Now.ToString() & "');" 
End Sub 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Me.litUpdateScript.Text = "alert('" & Now.ToString() & "');" 
    Dim script As String = "initScript();" 
    ScriptManager.RegisterStartupScript(updTest, updTest.GetType(), "Myscript", script, True) 
End Sub 

이 페이지로드에 정확한 시간을 발생하지만, 타이머 새로 고침에 변경되지 않습니다. 방화범이 바뀌어 스크립트가 바뀌는 것을 볼 수는 있지만.

+0

코드를 게시하십시오. – TheGeekYouNeed

+0

코드를 보지 않고는 알 수 없지만 JS에서 핸들러를 설정하고 클로저를 생략하는 것이 일반적이므로 변수가 인스턴스화되고 핸들러가 정의 될 때 함수가 실행될 때 호출됩니다. –

답변

0

나는 추측을하지만, 실제로 이것을 시도하지는 않았지만 javascript 및 업데이트 패널에서 상당히 많은 작업을 수행했습니다.

나는 page_load 대신 틱에 이벤트를 등록해야한다고 생각한다. 이 같은 더 뭔가 : 구글에 둘러보고

Protected Sub panelRefresh_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles panelRefresh.Tick 
    Me.litUpdateScript.Text = "alert('" & Now.ToString() & "');" 
    Dim script As String = "initScript();"  
    ScriptManager.RegisterStartupScript(this.updatePanel, typeof(string), "alertScript", "alert('Error Message');", true); 
End Sub 

나는 사람들이 page_loads 문제를 가지고 있지만 다른 행사에 일을 가지고 있다고했다. 그만한 가치가있어, 나에게 알려줘.

+0

아니요 수정되지 않았습니다. 같은 문제. Firebug에서 여전히 작동해야하는 것처럼 보입니다. – fizzer

관련 문제