我在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,名字很順利;)。
的步驟我把爲:
- 打開你MooTools的核心和多個文件(我使用VS2012,但 記事本++應該可以正常工作)
- 查找(CTRL + F)「的新類型新的MooTools的「,代之以 」「
- 查找(CTRL + F) 」this.Type「 並替換爲 」this.mooTools「
- 查找(CTRL + F) 」類型「,並替換爲 」MooTools的「
- 確保你對這兩個文件都這樣做(除非你只使用核心)
非常感謝Nathan和'Scott'幫助我。
我忘了提及我在所有瀏覽器(IE,Chrome,FF,Nightly)中都測試過了,並且工作正常。 – ScottM