2012-08-22 37 views
3

運行後考慮以下情形:UpdatePanel的動畫只有超時

MasterpageFile1:

<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="Frame.master.vb" Inherits="Project.Frame" ClientIDMode="Static" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server" name="form1"> 
     <asp:ContentPlaceHolder ID="BodyPlaceHolder" runat="server"> 
     </asp:ContentPlaceHolder> 
    </form> 
</body> 
</html> 

嵌套的MasterPageFile:

<%@ Master Language="VB" MasterPageFile="/Project/Code/MasterPages/Frame.Master" CodeBehind="Master2.master.vb" Inherits="Project.Master2" %> 
<asp:Content ID="Content2" ContentPlaceHolderID="BodyPlaceHolder" runat="server"> 
    <input type="submit" id="btSubmit" runat="server" value="start" class="input" /> 
    <asp:UpdatePanel ID="up" runat="server" UpdateMode="Always"> 
     <ContentTemplate> 
      <div>CALCULATION RESULT GETS DISPLAYED HERE</div> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="btSubmit" /> 
     </Triggers> 
    </asp:UpdatePanel> 
    <ajaxToolkit:UpdatePanelAnimationExtender ID="upae" runat="server" TargetControlID="up"> 
     <Animations> 
      <OnUpdating> 
       <Sequence> 
        <ScriptAction FPS="20" Duration="0.5" script="DoSomething();" /> 
       </Sequence> 
      </OnUpdating> 
      <OnUpdated> 
       <Parallel> 
        <ScriptAction FPS="20" Duration="0" script="DoSomethingElse();" /> 
       </Parallel> 
      </OnUpdated> 
     </Animations> 
    </ajaxToolkit:UpdatePanelAnimationExtender> 
</asp:Content> 

一個aspx頁,它加載一些樣式。

而且follwing jQuery代碼:

$(document).ready(function() { 
    $("#btSubmit").click(); 
}); 

此代碼觸發UpdatePanel的刷新。 OnUpdating Animation正在播放,Server執行一些計算任務並將結果發送給客戶端。客戶端建立在結果中,但OnUpdatedAnimation nevers播放。

如果我將jQuery代碼更改爲follwing,它工作正常。

$(document).ready(function() { 
    setTimeout(function() { 
     $("#btSubmit").click(); 
    }, 1500); 
}); 

可能有人能告訴我,爲什麼出現這種情況,如何來實現,即在計算開始時的DOM準備就緒,而不是1.5秒以後呢?

親切的問候, 索倫

回答

0

我認爲這種行爲的原因是不是當上btSubmit點擊局部回傳發生的所有客戶端對象初始化。

嘗試使用這個腳本(將它放在後ScriptManager控制):

Sys.Application.add_load(applicationLoadHandler); 

function applicationLoadHandler(sender, args) { 
    if (args.get_isPartialLoad() !== true) { 
      $("#btSubmit").click(); 
    } 
} 
+0

得到了同樣的問題在這裏。 OnUpdating運行。結果被插入,但OnUpdated動畫未運行。控制檯不記錄任何錯誤或警告。 SetTimout也解決了這個問題,但這正是我想要避免的。 –