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

4

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

这是我的设置:

母版页:

<%@ 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未能正确运行。如果我将母版页中的ScriptManager替换为ToolkitScriptManager,则问题得以解决;但我不想这样做,因为我有其他需要ScriptManager的页面。 我读到ScriptManager应该足够运行asp ajax控件,那么为什么在这种情况下它无法正常工作呢?

你是否尝试过在主页面级别将 ScriptManager 替换为 ToolkitScriptManager?这是我一直以来的做法,使用 ScriptManager 时从未遇到过无法正常工作而使用 ToolkitScriptManager 可以的问题。 - Garrison Neely
正如我所提到的,将ScriptManager替换为ToolkitScriptManager可以解决问题,但它会产生其他问题:基本上,在主页面中导入的js文件在使用ToolkitScriptManager时“无法工作”,但这是另一个问题。 - Karim
1个回答

0

如果您在某些页面上使用了一个ScriptManager,而在另一些页面上使用了ToolKitScriptManager,则有办法在所有页面上使用相同的主页面,并在不同的页面上使用不同的ScriptManager。

本答案详细介绍了几种方法,其中一种方法是在PageLoad上禁用Master.ShowScriptManager = false;

在某些页面上禁用ScriptManager

另一种建议为不同的ContentPlaceHolders使用不同的ScriptManagers,这也可以实现。

希望这可以帮到您!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接