De deux choses l'une :
1 - Soit tu recharges ta table depuis ta base au Page_Load
2 - Soit tu stockes ta table dans le ViewState entre tes changement de pages : ViewState["matable"] = matable
Sol 1 : (données centralisées)
- avantage : consommation de mémoire moins élevée que la solution 2, moins de transferts de données entre le client et le serveur
- inconvénient : les données sont transférées entre le serveur et le serveur de donnée. Si c'est la même machine, bonnes perf'.
- inconvénient : on bosse directement sur les données, annulation compliquée à gérer
- remarque : j'ai beaucoup pratiqué ça en entreprise, ce n'est donc pas une bidouille, mais une pratique courante.
Sol 2 : (cache dans le ViewState)
- avantage : pas d'aller/retour entre le serveur web et le serveur de données
- avantage : possibilité d'annuler toutes les modif à la fin (en ne les applicant pas)
- inconvénient : plus de données transférées entre le client et le serveur web
- inconvénient 2 : en multi-utilisateur, le fait de mettre les données en cache dans le ViewState, ça peut poser des problèmes si un autre utilisateur fait des modif en même temps. C'est un peu plus lourd à gérer que la solution 1.
Note : avec ta session, tu dois également gérer les cas où l'enregistrement que tu modifies est potentiellement modifié par qqn d'autre. Web oblige...