Fehler beim Laden des Ansichtszustands beim dynamischen Laden verschiedener Steuerelemente

Ich habe eine aspx-Seite, die einige Steuerelemente dynamisch beim Postback lädt (d. h. wenn ein Click-Ereignis eintritt) und sie einem Platzhalter hinzufügt. Je nachdem, was angeklickt wird, muss ein anderer Satz von Steuerelementen geladen werden.
"Der Ansichtszustand konnte nicht geladen werden. Die Steuerelementstruktur, in die der Ansichtszustand geladen wird, muss mit der Steuerelementstruktur übereinstimmen, die während der vorherigen Anforderung zum Speichern des Ansichtszustands verwendet wurde." " -7-" Dies geschieht auch, wenn ich ViewState.Clear(.

Gibt es eine Möglichkeit, dies zu tun?

Dies funktioniert beim ersten Mal einwandfrei, aber wenn ich die Steuerelemente des Platzhalters entcleare und versuche, einen anderen Satz von Steuerelementen dynamisch zu laden, erhalte ich den folgenden Fehler:

Antwort auf "Fehler beim Laden des Ansichtszustands beim dynamischen Laden verschiedener Steuerelemente " 2 von antworten

Beim dynamischen Erstellen von Steuerelementen müssen Sie sicherstellen, dass jedes Steuerelement, das Sie erstellen, über eine eindeutige ID verfügt.

Ich denke, was hier passiert, ist, dass Sie Ihre Steuerelemente wie: Control1, Control2, Control3 benennen.

Und wenn Sie klicken, um einen anderen Satz von Steuerelementen zu erstellen, geben Sie möglicherweise einem anderen Objekttyp denselben Namen, sagen wir, dass Control1 zuerst wie ein Textfeld erstellt wurde und wenn Sie darauf klicken, ist es ein Kontrollkästchen.

Ohne den Code zu sehen, ist schwer zu sagen, warum ViewState.Clear() nicht funktioniert, aber wenn Sie versuchen, den Ansichtszustand zu löschen, benötigen Sie kein Postback, Sie können versuchen, eine neue Seite anzufordern und die Argumente auf der Abfragezeichenfolge anstelle eines Postbacks weiterzugeben. Dies ist auch schneller, da Sie die ViewState-Informationen nicht an den Server zurücksenden müssen.

Yuriy Solodkyy erklärt es hier gut: Dynamically Created Controls in ASP.NET