您好我正在尝试在用户控件中使用 AjaxControlToolkit 的 Accordion 控件。该用户控件是从后面的代码动态添加到页面的。我的用户控制代码如下:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyControl.ascx.cs"
Inherits="Project.UC.Control" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit"
TagPrefix="asp" %>
<asp:Accordion ID="Accordion1" runat="server" HeaderSelectedCssClass="Sel"
HeaderCssClass="unSel" SelectedIndex="0">
<Panes>
<asp:AccordionPane runat="server" ID="AccordionPane1">
<Header>Red Orchid</Header>
<Content>Some content here.</Content>
</asp:AccordionPane>
</Panes>
</asp:Accordion>
为了动态添加用户控件,我在页面后面的代码中使用了以下代码
Control mycontrol = this.LoadControl("~/myUserControl.ascx");
this.Controls.Add(mycontrol);
在我的用户控件使用者页面上,我有带有 runat="server" 的表单标记,还为 ajax 功能添加了 ScriptManager 控件。当我运行我的代码时,我收到以下错误
Control 'ctl02_Accordion1_AccordionExtender' of type
'AccordionExtender' must be placed inside a form tag with runat=server.
我已经在我的消费者页面上使用了带有 runat="server" 标记的表单,为什么会出现这个问题。为了解决这个问题,我将消费者页面的表单标签移至用户控件,这解决了我的问题,但这样做我无法利用消费者页面上的回发。如果我将带有 runat="server" 的表单标签放在用户控件和消费者页面中,则会显示错误,您只能在页面上使用一个表单标签。如何解决这个问题呢。
提前致谢..