2013-10-01 23 views
4

我一直在閱讀SO一段時間,但這是我第一次發佈一個問題(第一次我沒有找到我正在尋找的答案)爲)ASP.NET Ajax Accordion控件無法正常使用ScriptManager

這裏是我的設置:

母版頁:

<%@ 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未正確運行。如果我用ToolkitScriptManager替換母版頁中的ScriptManager,問題就解決了;但我不想這樣做,因爲我有其他需要ScriptManager的頁面。 我讀到ScriptManager應該足以運行asp ajax控件,那麼爲什麼它在這種情況下不起作用?

+0

您是否嘗試過在Master Page級別使用ToolkitScriptManager替換ScriptManager?這就是我一直都在做的事情,從來沒有與使用ScriptManager但不使用ToolkitScriptManager的內容有關的問題。 –

+0

正如我所提到的,用ToolkitScriptManager替換ScriptManager可以解決這個問題,但它會產生其他問題:基本上,導入Master頁面的js文件「不會與ToolkitScriptManager一起工作」,但這是另一個問題 – Karim

回答

0

如果您在一些頁面上停留一個ScriptManager,而在另一個頁面上停留在ToolKitScriptManager上,則可以在所有頁面上使用相同的母版頁,並在不同的頁面上使用不同的ScriptManager。

本答案詳細介紹了幾種方法,一種方法將禁用PageLoad上的Master.ShowScriptManager = false;

Disable ScriptManager on certain pages

另一個表明具有對不同ContentPlaceHolders,這也適用不同ScriptManagers。

希望這會有所幫助!