Kas*_*hif 6 .net asp.net user-controls ajaxcontroltoolkit
我有一个用户控件,只要用户点击按钮,我就会在页面上添加.以下是添加控件的代码.
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;
}
Run Code Online (Sandbox Code Playgroud)
此控件具有ModalPopupExtender弹出窗口.当我在页面上添加第二个控件时,它会在内部抛出一个错误,我可以在firebug中看到.如何使这个弹出窗口ID独一无二?
<asp:ModalPopupExtender ID="mpeReply" BehaviorID="mpeReply" runat="server" TargetControlID="btnReply"
PopupControlID="pnlReply" BackgroundCssClass="ModalPopupBG1">
</asp:ModalPopupExtender>
Run Code Online (Sandbox Code Playgroud)
Sys.InvalidOperationException:Sys.InvalidOperationException:无法将具有相同ID"mpeReply"的两个组件添加到应用程序中.
小智 8
我找到了解决这个问题的方法,正如很多人所说的那样,简单的解决方案就是你的HTML没有正确形成 - 元素有一个额外的或缺少的结束标记.确保所有标签都已正确关闭,问题应该消失 - 整天都在努力解决这个问题!
我使用此代码来解决我的问题,请注意ScriptMode设置为"Release"
<AjaxControlToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" ScriptMode="Release">
</AjaxControlToolkit:ToolkitScriptManager>
Run Code Online (Sandbox Code Playgroud)
我从这个链接看到了类似的答案:http: //www.advancesharp.com/questions/17658/sys-invalidoperationexception-two-components-with-the-same-id-xxx-can-t-be-added-to -应用程序