Speichern einer List in Viewstate

8

Ich habe eine Aspx-Seite, die folgendes hat:

  • Ein Repeater mit einem Linkbutton in jedem
  • Die Schaltfläche "link" hat ein Befehlsargument mit einem Ganzzahlwert
  • Ein Benutzersteuerelement

Die Idee ist, dass, wenn der Benutzer auf die Verknüpfungsschaltfläche klickt, der Wert der Befehlszeile in einer Liste gespeichert wird. Kein Problem, das Sie vielleicht denken, aber ich brauche den Wert in einer Liste in der Benutzersteuerung, nicht in der ASPX-Seite gespeichert werden. Die Liste muss über Postbacks hinweg beibehalten werden, daher muss sie auch im Viewstate gespeichert werden.

Also habe ich eine öffentliche Eigenschaft in dem Benutzersteuerelement wie folgt erstellt:

%Vor%

Und dann hatte ich gehofft, dass ich von meiner Aspx-Seite eine Codezeile hinzufügen könnte, um der Liste einen Wert hinzuzufügen:

%Vor%

Das Problem, das ich bekomme, ist, dass der Wert tatsächlich nie zur Liste hinzugefügt wird. Die Anzahl ist immer Null.

Ich bin mir sicher, dass ich die Eigenschaft falsch eingestellt habe, aber ich bin mir nicht sicher, wie ich es korrigieren soll.

Jede Hilfe würde sehr geschätzt werden.

Danke Al

    
higgsy 08.09.2011, 09:56
quelle

1 Antwort

17

Ihr Getter ist falsch. Dies ist die richtige Variante:

%Vor%

Hier prüfen Sie zuerst, ob Sie in ViewState bereits etwas benötigen, und falls nein, fügen Sie es dort hinzu. Dann geben Sie das Objekt von ViewState zurück - es ist garantiert dort.

Ihre Lösung war schlecht, weil sie new List<int>() nicht in den ViewState

gestellt hat     
Michael Sagalovich 08.09.2011, 10:00
quelle