2008-09-05 12 views
0

Dies war eine lustige Woche (wenn Sie auf meine Fragen zurückblicken, sehen Sie ein gemeinsames Thema).ViewState und Ändern der Kontrollreihenfolge

Ich habe einen Repeater, der an eine Sammlung gebunden ist. Jedes dynamische Steuerelement des Repeaterelements, das dem Sammlungselement entspricht, gibt auch einen Header für jedes Steuerelement aus, das einen Delete-Link enthält.

Wenn auf den Link zum Löschen geklickt wird, wird das entsprechende Objekt aus der Sammlung entfernt, und der Repeater wird neu gebunden.

Das Problem, das mir begegnet, ist, dass, sobald ich die Repeater-Elemente ändern, der Zustand auf einigen der Benutzersteuerelemente verloren ist. Es sind immer die gleichen Steuerelemente, unabhängig davon, wo sie sich in der Sammlung befinden.

Ich frage mich, ob das Ändern der gebundenen Sammlung ein No-No ist, und es verwechselt Viewstate von der richtigen Wiederherstellung der Werte.

Kann jemand klären? Wie sonst kann ich das tun?

Antwort

3

Ok, beantwortete meine eigene Frage.

Die Antwort ist, nicht ... es ist ein Albtraum.

Stattdessen habe ich ein SoftDelete-Flag hinzugefügt, und anstatt das Element aus der Sammlung zu entfernen, setze ich einfach dieses Flag. Dann zeigt der Repeater keine Elemente zum Löschen an.

Wenn die Sammlung gespeichert wird, verwirft er die zum Löschen markiert Elemente und spart ...

Alles befestigt ist, in einer ungeraden Art und Weise, wenn nicht.