问题描述
|
如何清除以下错误:
ScriptManager仅一个实例
可以添加到页面。
说明:未处理的异常
发生在执行
当前的Web请求。请查看
有关更多信息的堆栈跟踪
错误及其起源
代码。
异常详细信息:
system.invalidOperationException:仅
ScriptManager的一个实例可以是
添加到页面。
源错误:未处理的异常
是在执行期间生成的
当前的Web请求。
有关原产地和
异常的位置可以是
使用异常堆栈识别
跟踪下面。
以下是我的html标记:
<%@ Page Language=\"C#\" AutoEventWireup=\"true\" MasterPageFile=\"~/MasterPage.master\"
CodeFile=\"ManualReport.aspx.cs\" Inherits=\"ManualReport\" %>
<%@ Register assembly=\"Telerik.Web.UI\" namespace=\"Telerik.Web.UI\"
tagprefix=\"telerik\" %>
<asp:Content ContentPlaceHolderID=\"ContentPlaceHolder1\" runat=\"server\"
ID=\"ContentPlaceHolder1\">
<%@ Register Assembly=\"Microsoft.ReportViewer.WebForms,Version=9.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a\"
Namespace=\"Microsoft.Reporting.WebForms\" TagPrefix=\"rsweb\" %>
<form id=\"mainform\" runat=\"server\"><table width=\"100%\" >
<asp:ScriptManager ID=\"ScriptManager2\" runat=\"server\">
</asp:ScriptManager>
<asp:ScriptManager ID=\"ScriptManager1\" runat=\"server\">
</asp:ScriptManager>
</form>
<div>
<tr><td>Customer Name</td><td>
<asp:RadioButton ID=\"rdbcustomerAll\" runat=\"server\" Visible =\"false\"
GroupName=\"CustomerValidation\"
Text=\"All\" Checked=\"false\" /></td><td>
<asp:RadioButton ID=\"rdbcustomerSpecific\" runat=\"server\"
GroupName=\"CustomerValidation\" Visible=\"false\" Text=\"Spec\" Checked=\"true\" /></td></
td><td>
<asp:DropDownList ID=\"cmbName\" runat=\"server\">
</asp:DropDownList></td></tr>
<tr><td>Date</td><td><asp:RadioButton ID=\"rdbDateall\" runat=\"server\"
Visible =\"false\" GroupName=\"DateValidation\"
Text=\"All\" /></td><td>
<asp:RadioButton ID=\"rdbDateSpec\" runat=\"server\" Visible =\"false\" Checked=\"true\" GroupName=\"DateValidation\" Text=\"Spec\" /></td><td>
<telerik:RadDatePicker ID=\"rdpDate\" runat=\"server\" xmlns:telerik=\"telerik.web.ui\">
</telerik:RadDatePicker>
</td></tr>
解决方法
为什么在页面上两次添加
ScriptManager
?您只能添加一个,这就是错误的意思。每页只允许一个ScriptManager实例。
请删除ScriptManager2
,它会为您服务。
其次,ScriptManger应该在Form Tag下。喜欢..
<form id=\"mainform\" runat=\"server\"><table width=\"100%\" >
<asp:ScriptManager ID=\"ScriptManager1\" runat=\"server\">
</asp:ScriptManager>
</form>
, ScriptManager
是服务器端组件,必须放置在form
标记内。每页仅可添加一个“ 1”组件。对于您的情况,您提供了两个“ 1”分量。因此,您必须删除其中之一,即位于ѭ5之外的ѭ1。
, 页面中有两个脚本管理器:
<asp:ScriptManager ID=\"ScriptManager2\" runat=\"server\">
</asp:ScriptManager>
和
<asp:ScriptManager ID=\"ScriptManager1\" runat=\"server\">
</asp:ScriptManager>
根据错误的描述,您必须删除一个。您可能只有一个。
, 除了其他人已经给出的答案(100%正确)之外,您也太早关闭了“表格” ...
<form id=\"mainform\" runat=\"server\"></form>
将结束\“ form \”标记移到所有服务器端ASP.NET控件之后,确保HTML仍然有效...(很难确切知道要去哪里,而又看不到完整的标记,但是我想接近结束内容标签:/ asp:Content)
编辑:实际上,也值得指出的是,由于您在此处使用母版页,因此您的母版页中可能已经有一个服务器端表单...在aspx子页中也无法再有第二种表单。我建议像其他人所指出的那样,也许将您的Single Script管理器放在form标记内的母版页中,并从子(aspx)页面中删除对脚本管理器和\“ form \”的所有引用)?
HTH。
戴夫