Schaltfläche in UpdatePanel verliert zufälligerweise Event Handler

9

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%     
Joshua Whitley 30.01.2013, 17:45
quelle

2 Antworten

0

Nachdem ich das UpdatePanel deaktiviert habe (danke an Yellowfog für den Vorschlag), habe ich Folgendes festgestellt:

  1. Wenn Sie auf "Hinzufügen" klicken, wird ein Benutzersteuerelement mit der ID "wa1" hinzugefügt.
  2. Wenn Sie erneut auf "Hinzufügen" klicken, wird die Anzahl der vorhandenen Benutzersteuerelemente in der Liste gezählt und ein Benutzersteuerelement mit der ID "wa2" hinzugefügt.
  3. Durch Klicken auf "Entfernen" im Steuerelement "wa1" würde "wa1."
  4. entfernt
  5. Durch Klicken auf "Hinzufügen" wird die Anzahl der vorhandenen Benutzersteuerelemente in der Liste (1) gezählt und versucht, ein Benutzersteuerelement mit der ID "wa2" hinzuzufügen, das einen Fehler verursachen würde, da dieses Steuerelement bereits auf der Seite vorhanden ist. Dieser Fehler wurde nicht angezeigt, da der Aufruf asynchron war.

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.

    
Joshua Whitley 14.02.2013, 17:25
quelle
0

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.

    
Stefano Altieri 14.02.2013 16:23
quelle

Tags und Links