ASP.NET Ajax 手风琴控件无法与 ScriptManager 正常工作



我已经阅读SO一段时间了,但这是我第一次发布问题(第一次我找不到我正在寻找的答案)

这是我的设置:

母版页:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Master.master.cs" Inherits="VatechWebsite.Master" %>
<html>
<head>...</head>
<body>
    <form>
        <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
        ...
        <asp:ContentPlaceHolder ID="content" runat="server">
        </asp:ContentPlaceHolder>
    </form>
</body>
</html>

内容页面:

<%@ Page Title="" Language="C#" MasterPageFile="~/Master.Master" AutoEventWireup="true" CodeBehind="Brand.aspx.cs" Inherits="VatechWebsite.Brand1" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="Content2" ContentPlaceHolderID="content" runat="server">
    <asp:Accordion ID="CategoriesAccordion" runat="server"  HeaderCssClass="AccordionHeader">
            <HeaderTemplate><%# DataBinder.Eval(Container.DataItem, "CategoryName") %></HeaderTemplate>
            <ContentTemplate>
                <div id="ProductList">Some text<br />supposed to be very large <br/></div>
            </ContentTemplate>
        </asp:Accordion>
<asp:Content/>

当我运行此页时,折叠项显示正确,正确绑定数据,并展开第一个窗格。问题是,我无法展开/折叠窗格。与此控件关联的 javascript 似乎未正常运行。如果我将母版页中的脚本管理器替换为工具包脚本管理器,则问题已解决;但我不想这样做,因为我还有其他页面需要脚本管理器。我读到脚本管理器应该足以运行asp ajax控件,那么为什么在这种情况下它不起作用呢?

如果您在某些页面上使用一个脚本管理器,而对另一个页面使用ToolKitScriptManager,则可以通过多种方式在所有页面上使用相同的母版页,并在不同的页面上使用不同的脚本管理器。

这个答案详细介绍了几种方法,一种方法将在PageLoad上禁用Master.ShowScriptManager = false;

在某些页面上禁用脚本管理器

另一个建议为不同的ContentPlaceHolders启用不同的ScriptManager,这也可以工作。

希望这有帮助!

最新更新