ScriptManager必须出现在任何需要它的控件之前

我创build了一个新的ASP.NET Web应用程序,debugging后,我得到了服务器错误

ID为'WaitingPopup1'的控件需要在页面上有一个ScriptManager。 ScriptManager必须出现在任何需要它的控件之前。

我是新的ASP.NET,所以我可以安装我的ScriptManager,在web.config?

ScriptManager是需要添加到您创build的页面的ScriptManager

看看这个示例AJAX应用程序 。

 <body> <form runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> ... </form> </body> 

如果您在页面上使用Microsoft AJAX,则需要将脚本pipe理器控件添加到您的母版页或需要它的页面中。 它为Web和应用程序服务pipe理ASP.NET Ajax脚本库和脚本文件,局部页面呈现以及客户端代理类生成

 <asp:ScriptManager ID="ScriptManger1" runat="Server"> </asp:ScriptManager> 

充分的用法

 <asp:ScriptManager AllowCustomErrorsRedirect="True|False" AsyncPostBackErrorMessage="string" AsyncPostBackTimeout="integer" AuthenticationService-Path="uri" EnablePageMethods="True|False" EnablePartialRendering="True|False" EnableScriptGlobalization="True|False" EnableScriptLocalization="True|False" EnableTheming="True|False" EnableViewState="True|False" ID="string" LoadScriptsBeforeUI="True|False" OnAsyncPostBackError="AsyncPostBackError event handler" OnDataBinding="DataBinding event handler" OnDisposed="Disposed event handler" OnInit="Init event handler" OnLoad="Load event handler" OnPreRender="PreRender event handler" OnResolveScriptReference="ResolveScriptReference event handler" OnUnload="Unload event handler" ProfileService-LoadProperties="string" ProfileService-Path="uri" RoleService-LoadRoles="True|False" RoleService-Path="uri" runat="server" ScriptMode="Auto|Inherit|Debug|Release" ScriptPath="string" SkinID="string" SupportsPartialRendering="True|False" Visible="True|False"> <AuthenticationService Path="uri" /> <ProfileService LoadProperties="string" Path="uri" /> <RoleService LoadRoles="True|False" Path="uri" /> <Scripts> <asp:ScriptReference Assembly="string" IgnoreScriptPath="True|False" Name="string" NotifyScriptLoaded="True|False" Path="string" ResourceUICultures="string" ScriptMode="Auto|Debug|Inherit|Release" /> </Scripts> <Services> <asp:ServiceReference InlineScript="True|False" Path="string" /> </Services> </asp:ScriptManager> 

您可以将脚本pipe理器标记添加到页面的<Form>标记的下方。 以下是如何放置脚本pipe理器标签。

  <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> 

如果您正在使用母版页,则build议您在母版页中使用脚本pipe理器,这样您就不必在包含AJAX控件的每个页面上一遍又一遍地编写它。

只需将ScriptManager放在form标签中,如下所示:

 <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> 

如果它有Master Page那么把它放在主页面本身。

ScriptManager是您在页面中使用注册的Web控件

 <asp:ScriptManager ID="ScriptManger1" runat="Server" /> 

在Form标签内

它只是想在您的ASPX页面的ASP控制。 我通常把我的标签放在标签的下方,或者放在标签主体的第一个内容区域(如果你使用的是母版页)

 <body> <form id="form1" runat="server"> <asp:ScriptManager ID="scriptManager" runat="server"></asp:ScriptManager> <div> [Content] </div> </form> </body> 

有很多情况下,脚本经理可能会给这样的问题。 您可以先尝试在适当的占位符中添加脚本pipe理器,或者在使用Ajax控件的内容之前出现的任何位置持有者。

  1. 我们需要添加ScriptManager,同时使用任何AJAX控件不仅更新面板。 <asp:ScriptManager ID="ScriptManger1" runat="Server" />

  2. 如果您正在使用最新的Ajax控件工具包(我不确定版本4.0或4.5),则需要使用特定的ToolkitScriptManager而不是默认的Ajax扩展中的ScriptManager。

  3. 您只能在页面上使用一个ScriptManager或ToolKitScriptManager。如果您已将其添加到Master Page上,则无需在Web页面上再次添加它。

  4. 这里提到的问题可能是因为ContentPlaceHolder请检查您的母版页上有多less内容占位符。 让我们举一个例子,如果你有2个内容占位符“头”和“ContentPlaceHolder1”在主页和ContentPlaceHolder1是你的内容Page.please检查下面的代码我在这里添加我的ScriptManager第二个占位符下面有更新面板。

 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server"> <div> <asp:ContentPlaceHolder id="MainContent" runat="server"> <asp:ScriptManager ID="ScriptManger1" runat="Server" /> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> </ContentTemplate> </asp:UpdatePanel> </asp:ContentPlaceHolder> </div> </form> </body> </html> 

当我们在网页上默认selectmasterpage的时候,我们大多数人在deviseweb表单的时候出现了错误。

 <%@ Page Title="" Language="C#" MasterPageFile="~/Master Pages/Home.master" AutoEventWireup="true" CodeFile="frmCompanyLogin.aspx.cs" Inherits="Authentication_frmCompanyLogin" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server"> </asp:Content> 

我们不需要移除它正在引导结构的任何PlaceHolder,但是您必须添加网页表单内容在您添加了您的ScriptManager(在主页面上)的Same PlaceHolder中,或者添加脚本pipe理器到适当的占位符或任何在内容之前出现的地方持有人其中使用了Ajax控件。

在ASP.NET页面上,在表单标签内。

脚本pipe理器在使用前必须放在页面上。 这将直接在页面本身,或者,如果您正在使用它们,在主页上。

标记将是;

  <asp:ScriptManager ID="ScriptManager1" runat="server" LoadScriptsBeforeUI="true" EnablePartialRendering="true" /> 
  • head标签runat="server"
  • runat="server"form标签里面
  • 在包含需要它的控件的ContentPanels之前 – 使用UpdatePanels典型控件:

<%=%的PageTitle>

 </form> </body>