Si si, c'est assez propre.
En gros tu as deux choix :
* soit tes données sont stockées dans une base (ou un fichier) et tu les charges à chaque chargement de page.
* soit tu te les trimballes entre les chargements en les collant dans le ViewState (comme tu l'as fait)