2012-11-01 22 views
4

我有一个用户控件,只要用户单击按钮,我就可以在页面上添加该控件。以下是添加控件的代码。(ModalPopupExtender)具有相同ID的两个组件无法添加到应用程序

protected void Page_Init(object sender, EventArgs e) 
{ 
    if (Session["ControlCount"] != null) 
    { 
     for (int i = 1; i <= (int)Session["ControlCount"]; i++) 
     { 
      Control myUserControl = LoadControl("~/Controls/MessageControl.ascx"); 
      divMessageControl.Controls.Add(myUserControl); 
     } 
    } 
} 

protected void Page_Load(object sender, EventArgs e) 
{ 
} 

protected void btnExpand_Click(object sender, EventArgs e) 
{ 
    int count = 0; 
    if (Session["ControlCount"] != null) 
    { 
     count = Convert.ToInt32(Session["ControlCount"]); 
    } 

    Control myUserControl = (Control)Page.LoadControl("~/Controls/MessageControl.ascx"); 
    divMessageControl.Controls.Add(myUserControl); 
    Session["ControlCount"] = count + 1; 
} 

此控件具有ModalPopupExtender弹出。当我在页面上添加第二个控件时,它会在内部引发一个我可以在萤火虫中看到的错误。如何使这个弹出ID唯一?

<asp:ModalPopupExtender ID="mpeReply" BehaviorID="mpeReply" runat="server" TargetControlID="btnReply" 
    PopupControlID="pnlReply" BackgroundCssClass="ModalPopupBG1"> 
</asp:ModalPopupExtender> 

Sys.InvalidOperationException:Sys.InvalidOperationException:两个 部件用相同的ID 'mpeReply' 不能被添加到 应用。

回答

1

从扩充

6

我已经找到了解决这一问题删除BehaviorID属性,很多人已经说了这么多,简单的解决方法是,你的HTML格式不正确 - 没有任何一个对元素添加或缺少结束标记。确保所有标签都已正确关闭,并且问题应该消失 - 与此一整天挣扎!

+0

感谢它的工作 – Shailesh

+0

谢谢......它适合我! – Singaravelan

2

类似这里的问题。对我来说,解决办法是从一个快捷方式关闭标签更改脚本管理的全闭标签,添加ScriptMode =“释放”属性之后:

变化: <asp:ScriptManager ID="ScriptManager1" ScriptMode="Release" runat="server" />

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

相关问题