Betrachten Sie, ich habe 2 Kontrollen, C
und CompositeC
, die C
enthält. Sowohl C
als auch CompositeC
haben ViewState.Wie erzwingen ViewState Wiederherstellung, nachdem untergeordnete Steuerelemente neu erstellt werden?
Nun betrachten Sie eine dritte Kontrolle verursacht ein Postback.
Der resultierende Lebenszyklus wird wie folgt sein:
CompositeC
versucht Zustand wiederherzustellen. Dazu müssen die untergeordneten Steuerelemente erstellt werden, sodassC
erstellt wird.- Wenn
C
erstellt wird, wird ViewState wiederhergestellt. - Das Postback-Ereignis des dritten Steuerelements wird ausgelöst. Zu diesem Zeitpunkt ruft ein Handler
CompositeC.RecreatedChildControls()
auf undC
wird erneut erstellt. - Alles rendert.
Das Problem ist, dass C
Zustand nicht wieder nach dem Verfahrensschritt 3.en RecreateChildControls
gestellt wird, sollte die staatliche Kontrolle ändern, so dass, wenn C
zu der Sammlung wiedereingeführt wird die CompositeC
Kontrolle ist Ansichtszustand automatisch gestellt wird, aber es funktioniert nicht.
Was soll ich tun?