(ModalPopupExtender) zwei Komponenten mit gleicher id können nicht Hinzugefügt werden, um die Anwendung
Ich habe ein user-control, welches ich füge auf einer Seite, Wann immer Benutzer klicken Sie auf die Schaltfläche. Folgende code-Steuerelement Hinzugefügt.
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;
}
Diese Steuerung hat ModalPopupExtender popup. Wenn ich hinzufügen 2. Kontrolle auf die Seite wirft es einen Fehler intern der ich sehe in firebug. Wie man dieses popup id einzigartig?
<asp:ModalPopupExtender ID="mpeReply" BehaviorID="mpeReply" runat="server" TargetControlID="btnReply"
PopupControlID="pnlReply" BackgroundCssClass="ModalPopupBG1">
</asp:ModalPopupExtender>
Sys.InvalidOperationException: Sys.InvalidOperationException: Zwei
Komponenten mit der gleichen id 'mpeReply' kann nicht Hinzugefügt werden
- Anwendung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entfernen BehaviorID Eigenschaft von extender
Ich habe die Lösung gefunden für dieses problem, so viel wie eine Menge Leute haben gesagt, die einfache Lösung ist, dass dein HTML wird nicht korrekt gebildet - es ist entweder ein zusätzliches oder fehlendes End-tag eines Elements. Stellen Sie sicher, dass alle tags korrekt geschlossen und das problem sollte Weg gehen - kämpfte den ganzen Tag mit diesem!
Ich habe diesen code zu beheben mein problem, beachten Sie die ScriptMode eingestellt ist "Release"
Sehe ich eine ähnliche Antwort von diesem link:
http://www.advancesharp.com/questions/17658/sys-invalidoperationexception-two-components-with-the-same-id-xxx-can-t-be-added-to-the-application
Ähnliches Problem hier. Die Lösung für mich war die änderung der Script Manager aus eine Verknüpfung zu schließen-tag, um die vollständige close-tag , nach dem hinzufügen der ScriptMode="Release" Attribut:
Ändern:
<asp:ScriptManager ID="ScriptManager1" ScriptMode="Release" runat="server" />
zu:
<asp:ScriptManager ID="ScriptManager1" ScriptMode="Release" runat="server></asp:ScriptManager>