2013-11-15 28 views
2

我在ASP.Net中的UpdateProgress和ScriptManager中遇到問題。當腳本在ScriptManager中註冊時,UpdateProgress無法顯示(內聯CSS屬性| display:none;)。我還使用此方法在頁面加載方法下以編程方式註冊了腳本ASP.NET 4.5 ScriptManager Improvements in WebForms,但仍然失敗。提前致謝 :)。當腳本添加到ScriptManager時,ASP.Net UpdateProgress會中斷

.aspx的:

<asp:ScriptManager ID="scriptManager" runat="server">    
      <Scripts> 
       <asp:ScriptReference Path="~/js/mootools-core-1.4.5.js" /> 
       <asp:ScriptReference Path="~/js/mootools-more-1.4.0.1.js" /> 
      </Scripts> 
     </asp:ScriptManager> 

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
        <ContentTemplate> 
         <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> 
         <div id="panel2Div" runat="server"></div> 
        </ContentTemplate> 
        <Triggers> 
         <asp:AsyncPostBackTrigger ControlID="Button1" /> 
        </Triggers> 
       </asp:UpdatePanel> 
       <asp:UpdateProgress ID="UpdateProgress1" runat="server"> 
        <ProgressTemplate> 
         <p>Doing Stuff....</p> 
        </ProgressTemplate> 
       </asp:UpdateProgress> 

代碼背後:

protected void Button1_Click(object sender, EventArgs e) 
     { 
      System.Threading.Thread.Sleep(3000); 
      panel2Div.InnerHtml = "Updated Panel 2"; 
     } 

如果使用ScriptManager被刪除腳本/標籤的ScriptReference,該工程的UpdateProgress!

編輯 - 由於Nathan提供的指針解決了問題。 Mootools和MS AJAX確實存在衝突。這是因爲Mootools核心/更多的聲明爲「類型」,MS AJAX會覆蓋它。幸運的是,可以通過將聲明從「類型」更改爲其他內容來註冊 。我在'斯科特'的帖子下找到了解決方案HERE,名字很順利;)。

的步驟我把爲:

  1. 打開你MooTools的核心和多個文件(我使用VS2012,但 記事本++應該可以正常工作)
  2. 查找(CTRL + F)「的新類型新的MooTools的「,代之以 」「
  3. 查找(CTRL + F) 」this.Type「 並替換爲 」this.mooTools「
  4. 查找(CTRL + F) 」類型「,並替換爲 」MooTools的「
  5. 確保你對這兩個文件都這樣做(除非你只使用核心)

非常感謝Nathan和'Scott'幫助我。

+0

我忘了提及我在所有瀏覽器(IE,Chrome,FF,Nightly)中都測試過了,並且工作正常。 – ScottM

回答