現在のページ番号を保存するためにビューステートを使用していると述べています。これにより、この番号を明示的にビューステートに保存していると思います。
ただし、asp.net は既定で、viewstate に大量のデータを格納します。あなたの例では、ページングが有効になっている 3 つのコントロールを使用すると、asp.net は「コントロール内のすべてのデータ」を保存します。つまり、現在 3 つのコントロールに表示されているすべてのデータがビューステートに保存されます。
これに対する解決策は、3 ページ コントロールのビューステートを明示的に「オフ」にすることです。残念ながら、これは、ページの読み込みごとにコントロールを再バインドする必要があることを意味します。
ページ番号を保存する必要があるだけの場合は、たとえば、msdnおよびpluralsightで説明されているように、それを制御状態に移動できます。
別の回答で提案されているようにクエリ文字列を使用してください。
または、引き続きビューステートを使用してから、ページ全体またはページ コントロールのみのビューステートをオフにすることもできます。
viewstate の詳細な説明については、Mrunal Brahmbhatt によるTruly Understanding Viewstateを読むことを強くお勧めします。