【发布时间】:2012-11-08 13:20:29
【问题描述】:
我创建了一个新的 ASP.NET Web 应用程序,调试后出现服务器错误
ID 为“WaitingPopup1”的控件需要页面上的 ScriptManager。 ScriptManager 必须出现在任何需要它的控件之前。
我是 ASP.NET 的新手,所以我应该在 web.config 的哪里安装我的 ScriptManager?
【问题讨论】:
-
只需将
放在弹出控件上方
我创建了一个新的 ASP.NET Web 应用程序,调试后出现服务器错误
ID 为“WaitingPopup1”的控件需要页面上的 ScriptManager。 ScriptManager 必须出现在任何需要它的控件之前。
我是 ASP.NET 的新手,所以我应该在 web.config 的哪里安装我的 ScriptManager?
【问题讨论】:
在 ASP.NET 页面上,在表单标签内。
【讨论】:
ScriptManager 是需要添加到您创建的页面的控件。
<body>
<form runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
...
</form>
</body>
【讨论】:
只需将ScriptManager 放入form 标记中,如下所示:
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
如果它有 Master Page 则将其放入母版页本身。
【讨论】:
【讨论】:
如果您在页面上使用 microsoft ajax,则需要将 the script manager control 添加到您的母版页或需要它的页面。它管理 ASP.NET Ajax 脚本库和脚本文件、部分页面呈现以及 Web 和应用程序服务的客户端代理类生成
<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>
【讨论】:
asp:ScriptManager?替代 ScriptManager without 使用 microsoft ajax ?
脚本管理器在使用前必须放在页面上。这将直接在页面本身上,或者,如果您正在使用它们,则在母版页上。
标记将是;
<asp:ScriptManager ID="ScriptManager1" runat="server" LoadScriptsBeforeUI="true"
EnablePartialRendering="true" />
【讨论】:
它只是想要您的 ASPX 页面上的 ASP 控件。我通常把我的放在标签下面,或者放在主人正文的第一个内容区域内(如果你使用母版页)
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="scriptManager" runat="server"></asp:ScriptManager>
<div>
[Content]
</div>
</form>
</body>
【讨论】:
您可以在页面的<Form> 标记下方添加脚本管理器标记。以下是放置脚本管理器标记的方法。
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
如果您使用母版页,建议您在母版页中使用脚本管理器,这样您就不必在每个包含 AJAX 控件的页面上一遍又一遍地编写它。
【讨论】:
asp:ScriptManager 吗?
在很多情况下,脚本管理器可能会出现这样的问题。你试试这个首先在适当的占位符或任何出现在使用 Ajax 控件的内容之前的占位符中添加脚本管理器。
我们需要在使用任何 AJAX 控件时添加 ScriptManager,而不仅仅是更新面板。
<asp:ScriptManager ID="ScriptManger1" runat="Server" />
如果您使用的是最新的 Ajax 控制工具包(我不确定版本 4.0 还是 4.5),您需要使用特定的 ToolkitScriptManager 而不是默认 Ajax 扩展中的 ScriptManager。
页面上只能使用一个 ScriptManager 或 ToolKitScriptManager,如果已在母版页上添加,则无需在网页上再次添加。
这里提到的问题可能是因为 ContentPlaceHolder 请检查您的母版页上有多少内容占位符。举个例子,如果您在母版页上有 2 个内容占位符“Head”和“ContentPlaceHolder1”,而 ContentPlaceHolder1 是您的内容页面。请检查下面的代码,我在这里添加了我在第二个占位符上的 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>
当我们在网页上默认选择母版页时,我们大多数人在设计网页表单时都会犯错误,因为占位符的数量与母版页相同。
<%@ 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,但您必须将 Web 表单内容添加到您添加 ScriptManager(在母版页上)的相同 PlaceHolder 中,或者在适当的占位符或出现的任何占位符中添加脚本管理器在使用 Ajax Control 的内容之前。
【讨论】:
head 标签和runat="server"
runat="server" 的form 标签内
ContentPanels 之前 - 带有UpdatePanels 的典型控件:
</form>
</body>
【讨论】:
<asp:ScriptManager ID="scriptManager1" runat="server">
</asp:ScriptManager>
在标签之后添加上面的代码。 它对我有用。
【讨论】: