Während der Entwicklung stoßen wir häufig auf eine Hauptseite, die Daten in Listen beim Paging anzeigt und verschiedene Abfragebedingungen bereitstellt. Die Abfrageergebnisdatensätze können geändert, gelöscht und andere Vorgänge ausgeführt werden Zu diesem Zeitpunkt gehen häufig Abfragebedingungen und die aktuelle Seite verloren. Wir können das Problem des Verlusts von Abfrageseitenbedingungen und Paging-Informationen lösen.
Normalerweise überschreiben wir das geschützte Überschreibungsobjekt LoadPageStateFromPersistenceMedium() in der Page-Klasse.
protected override void SavePageStateToPersistenceMedium(object state),
protected override void RaisePostBackEvent(IPostBackEventHandler sourceControl, string eventArgument),
protected override System.Collections.Specialized.NameValueCollection DeterminePostBackMode(), vier zu lösende Methoden. Allerdings gehen die Leute im Allgemeinen davon aus, dass sie beim Wiederherstellen der Seite beim Umschreiben von RaisePostBackEvent nicht die Funktion base.RaisePostBackEvent(sourceControl, eventArgument); ausführen, um zu verhindern, dass das Ereignis erneut ausgeführt wird. Dies führt jedoch häufig zu unerwarteten Situationen, z Da die Änderung nicht aktualisiert wird, werden Löschdatensätze nicht aktualisiert. Obwohl dies die Leistung verbessert, kann die Datenaktualisierung das Problem nicht lösen. Um dieses Problem zu vermeiden, ist der Weg sehr einfach: Schreiben Sie RaisePostBackEvent nicht neu und lassen Sie die Abfrageseite das letzte Postback-Ereignis erneut ausführen, wenn der Status wiederhergestellt ist dass die Ergebnisse aktualisiert werden. Der Seitenzustandswert und der aktuelle Seitenindex bleiben erhalten.