Pendant le développement, nous rencontrons souvent une page principale qui affiche les données dans des listes en pagination et fournit diverses conditions de requête. Les enregistrements de résultats de la requête peuvent être modifiés, supprimés et d'autres opérations doivent être rétablies une fois la page d'opération terminée. la page de requête. À l'heure actuelle, les conditions de requête et la page actuelle sont souvent perdues. Nous pouvons résoudre le problème de la perte des conditions de la page de requête et des informations de pagination en enregistrant l'état de la page.
Nous remplaçons généralement l'objet de remplacement protégé LoadPageStateFromPersistenceMedium() dans la classe Page,
remplacement protégé void SavePageStateToPersistenceMedium(object state),
remplacement protégé void RaisePostBackEvent(IPostBackEventHandler sourceControl, string eventArgument),
remplacement protégé System.Collections.Specialized.NameValueCollection EnsurePostBackMode(), quatre méthodes à résoudre. Cependant, les gens jugent généralement que lors de la restauration de la page lors de la réécriture de RaisePostBackEvent, ils n'exécutent pas base.RaisePostBackEvent(sourceControl, eventArgument); afin d'empêcher la réexécution de l'événement, mais cela conduit souvent à des situations inattendues, telles que comme les résultats de la modification ne sont pas actualisés, les enregistrements de suppression ne sont pas actualisés. Bien que cela améliore les performances, l'actualisation des données ne peut pas le résoudre. Pour éviter ce problème, la méthode est très simple, c'est-à-dire ne pas réécrire le RaisePostBackEvent et laisser la page de requête réexécuter le dernier événement de publication lorsque l'état est restauré, donc que les résultats sont actualisés. La valeur de la condition de la page et l'index de la page actuelle sont tous deux préservés.