2013-10-01 3 views
4

Я читал SO какое-то время, но это первый раз, когда я отправляю вопрос (первый раз я не нахожу ответа на то, что я ищу) для)ASP.NET Ajax Accordion Control не работает должным образом с 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, связанный с этим элементом управления, работает неправильно. Если я заменил ScriptManager на главной странице ToolkitScriptManager, проблема будет решена; но я не хочу этого делать, потому что у меня есть другие страницы, которые нуждаются в ScriptManager. Я прочитал, что ScriptManager должен быть достаточным для запуска asp ajax-элементов управления, поэтому почему он не работает в этом случае?

+0

Вы пытались просто заменить ScriptManager ToolkitScriptManager на уровне главной страницы? Это то, что я всегда делал и никогда не испытывал проблем с контентом, работающим с ScriptManager, но не с ToolkitScriptManager. –

+0

Как я уже упоминал, замена ScriptManager на ToolkitScriptManager решает проблему, но создает другие проблемы: в основном файлы js, импортированные на главной странице, «не будут работать» с ToolkitScriptManager, но это другой вопрос – Karim

ответ

0

Если вы застряли с одним ScriptManager для некоторых страниц и ToolKitScriptManager для другого, есть способы использовать одну и ту же главную страницу на всех ваших страницах и использовать разные ScriptManager на разных страницах.

Этот ответ описывает несколько подходов, один подход отключит Master.ShowScriptManager = false; на странице Load.

Disable ScriptManager on certain pages

Другой предполагает, имеющие различные ScriptManagers на для различных ContentPlaceHolders, который также работает.

Надеюсь, это поможет!

Смежные вопросы