Auf einer ASP.NET-Webseite habe ich ein UpdatePanel. In diesem UpdatePanel habe ich eine "Hinzufügen" -Schaltfläche, die dynamisch eine beliebige Anzahl von Benutzersteuerelementen, die ich erstellt habe, zu einem PlaceHolder hinzufügt. Das Benutzersteuerelement enthält eine Bezeichnung, eine Schaltfläche und ein Steuerelement von Dritt-Anbieter. Die Schaltfläche im Benutzersteuerelement dient zum Entfernen dieses bestimmten Benutzersteuerelements aus dem übergeordneten Steuerfeld. Die Funktionen "Hinzufügen" und "Entfernen" funktionieren ordnungsgemäß. Der Ereignishandler auf der Schaltfläche Hinzufügen funktioniert jedoch manchmal ohne offensichtliche Muster oder Ursache. Wenn ich 2 UCs hinzufüge und 1 entferne, funktioniert manchmal die Schaltfläche Hinzufügen und manchmal auch nicht. Jeder Schritt zur Suche nach einer Ursache wäre hilfreich.
Für den Kontext werden die UCs als "Where" bezeichnet, weil sie WHEREAS-Klauseln in Auflösungen sind. Hier ist der Code, der nur auf den relevanten Inhalt reduziert ist:
Bearbeiten.aspx
%Vor%Edit.aspx.vb (Klasse ist Edit2)
%Vor%Where.ascx.vb
%Vor%Nachdem ich das UpdatePanel deaktiviert habe (danke an Yellowfog für den Vorschlag), habe ich Folgendes festgestellt:
Die Lösung bestand darin, die IDs der dynamisch hinzugefügten Benutzersteuerelemente mithilfe von GUIDs anstelle von Ganzzahlen basierend auf der Anzahl der Steuerelemente in der Liste zu generieren. Auf diese Weise sind sie im Wesentlichen garantiert einzigartig.
Die Aktualisierungsbedienfelder verhalten sich oft merkwürdig, wenn sich die Dokumentkontur ändert. Versuchen Sie, die Schaltfläche "Hinzufügen" außerhalb des Bereichs zu verschieben und die Schaltfläche im Abschnitt "Auslöser" des Aktualisierungsfensters hinzuzufügen.
Tags und Links asp.net events vb.net updatepanel