ID 为“Accordion1_AccordionExtender”的控件需要页面上有 ScriptManager。ScriptManager 必须在任何需要它的控件之前出现。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: ID 为“Accordion1_AccordionExtender”的控件需要页面上有 ScriptManager。ScriptManager 必须在任何需要它的控件之前出现。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[InvalidOperationException: ID 为“Accordion1_AccordionExtender”的控件需要页面上有 ScriptManager。ScriptManager 必须在任何需要它的控件之前出现。]
   System.Web.UI.ExtenderControl.get_ScriptManager() +327081
   System.Web.UI.ExtenderControl.RegisterWithScriptManager() +117
   System.Web.UI.ExtenderControl.OnPreRender(EventArgs e) +19
   AjaxControlToolkit.ExtenderControlBase.OnPreRender(EventArgs e) in d:\hg\act\Server\AjaxControlToolkit\ExtenderBase\ExtenderControlBase.cs:365
   System.Web.UI.Control.PreRenderRecursiveInternal() +80
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842 
说明一下:我的页面上确实有ScriptManager,但不知道为什么每次运行都会抛出这个异常,我的项目是从.net framework3.5转到2.0的
各位高手们帮帮忙,这是什么问题!!

解决方案 »

  1.   

    把它放在form下面。试试 
        ScriptManager:ScriptManager 必须在任何需要它的控件之前出现,如果页面需要用到Ajax技术,就要添加该控件.它帮助页面管理所有的脚本(包括客户端和服务器端)。注意:只能向页面中添加ScriptManager 的一个实例。也就是说整个程序里面只能有一个ScriptManager控件。
    http://wenwen.soso.com/z/q170859215.htm
      

  2.   

    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <cc1:Accordion ID="Accordion1" runat="server" FadeTransitions = "false" FramesPerSecond = "40" TransitionDuration = "250" SelectedIndex = "0">这样的顺序。form >ScriptManager >Accordion 
      

  3.   

        <form id="formA" runat="server">
        <div class="left">
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <cc1:Accordion ID="Accordion1" runat="server"  FadeTransitions = "false" FramesPerSecond = "40" TransitionDuration = "250" SelectedIndex = "0" >
     我的是这样写的,还是不行呢
      

  4.   

    如果你是用的自定义控件的话。那你拖到其他页面上显示的话就不能在有一个ScriptManager  了
      

  5.   

     <form id="form1" runat="server">
       <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <cc1:Accordion ID="Accordion1" runat="server" HeaderCssClass="MasterHead" ContentCssClass="MasterContent"></cc1:Accordion>
    如果是这样的话,那你的web.config也要改成ajax的
    C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\web.config
      

  6.   

    楼上的,我已经修改了web.config了
      

  7.   

    把AjaxControlToolkit放在这个文件夹下就行了C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025我记得大概是这个,我前面也这问题,找了个文件,不过现在想在找出来找不到了
      

  8.   

    环境设置如下:下载完 ASPAJAXExtSetup.msi 安装更新后在你的系统盘下的(以C盘为例) 出现这个 文件夹:C:\Program Files\Microsoft asp.NET\ASP.NET 2.0 ajax Extensions\v1.0.61025安装这个后我们就可以创建Asp.net AJAXEnabledWebSite站点了,这其实就是个ajax.net网站的模板。但是我们现在还不能使用微软给我们开发好的ajax控件 。要想知道怎么使用ajax.net控件往下看。下载AjaxControlToolkit ,上面两个一个是带源代码的 一个是不带源代码的toolkit。建议下载带源代码的 toolkit。下载完成后把该文件解压到:C:\Program Files\Microsoft asp.NET\ASP.NET 2.0 ajax Extensions\v1.0.61025下运行C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\AjaxControlToolkit\AjaxControlExtender,里边有个.vsi文件,完成这个安装后,把在C:\Program Files\Microsoft asp.NET\ASP.NET 2.0 AJAX Extensions\SampleWebSite\Bin下面的AjaxControlToolkit.dll和 AjaxControlToolkit.pdb复制到C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\AjaxControlToolkit\Binaries文件夹下面,这样我们就可以在vs2005中导入ajax.net这些控件了。新建一个Ajax ControlToolkitWebSite 类型的web项目。在工具栏中新添加一个选项卡起名:AjaxControltoolkit在这个选项卡上右键选择项->浏览找到刚才复制过去的AjaxControlToolkit.dll,添加进来。这样我们就ajax.net控件成功引用到vs2005中了 。----------------------------------------------天羽补充----------------------------------------------web.config配置   <httpHandlers>
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
       </httpHandlers><assemblies>
         <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    </assemblies>上传到服务器上后出现js错误当拥有ajax功能的项目放到服务器上后,会出现js错误, 需要把2个DLL放到程序BIN目录下,一块上传到服务器(DLL文件并不会自动生成到项目中,需手动放入)步骤: 找到ajax的安装路径,我的是C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025
    把其中的System.Web.Extensions.Design.dll和System.Web.Extensions.dll两个文件拷贝到项目bin目录中即可
      

  9.   

    System.Web.Extensions.Design.dll和System.Web.Extensions.dll两个文件拷贝到项目bin目录中即可
    注意是2.0 的