ASP.Net 将脚本添加到脚本管理器时,更新进度中断

ASP.Net UpdateProgress breaks when scripts are added to ScriptManager

本文关键字:脚本 更新 中断 管理器 Net 添加 ASP      更新时间:2023-09-26

我在 ASP.Net 中使用UpdateProgress和ScriptManager时遇到问题。更新进度无法显示(内联 CSS 属性 | 显示:无;)在脚本管理器中注册脚本时。我还使用此方法在页面加载方法下以编程方式注册了脚本,ASP.NET WebForms 中的 4.5 脚本管理器改进,但仍然失败。提前感谢:)。

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";
        }

如果在脚本管理器中删除了脚本/脚本引用标记,则更新进度有效!

编辑 - 由于内森给出的指针,问题解决了。Mootools和MS AJAX之间确实存在冲突。这是因为Mootools core/more中的声明"Type"被MS AJAX覆盖。幸运的是,它可以做广告通过将声明从"类型"更改为其他内容。我在这里找到了解决方案,在"斯科特"的帖子下,很棒的名字BTW ;)。

我采取的步骤是:

  1. 打开您的Mootools核心和更多文件(我使用了VS2012,但是记事本++应该可以正常工作)
  2. 找到 (CTRL+F) "新类型"并替换为"新 mooTools"
  3. 找到 (CTRL+F) "这个。类型"并替换为"this.mooTools"
  4. 找到 (CTRL+F) "类型"并替换为"mooTools"
  5. 确保对两个文件都执行此操作(除非您只使用核心)

非常感谢内森和"斯科特"帮助我。

这可能与 mootools 不能很好地与 asp.net ajax 配合有关。 本文可能会对您有所帮助:asp.net mootools 上的论坛无法使用 asp.net ajax