のイベント ハンドラーでデータがフェッチされ、 のイベント ハンドラーでButton1
使用できるようにする必要があるとButton2
述べているため、ポスト バックに耐えられるようにデータ テーブルを永続化する必要があります。
いくつかの可能性があります:
Serializable
Viewstate (オブジェクトがである限り、動作しDataTable
ているようです)
- セッション (セッションを使用する場合)
- アプリケーション スコープ (Application["yourKeyName"] = dbTable;)
- 適切なクラスの静的メンバー
- サーバーキャッシュ
または、データをフェッチするためのデータベース操作が「重く」ない場合は、必要なときにそこからロードすることができます。
状態管理に関する詳細については、以下を参照してください。
http://msdn.microsoft.com/en-us/library/75x4ha6s.aspx
編集:より具体的な推奨事項を提供します。DataTable
このようにセッションに保存してみてください
Session["preBuiltDataTable"] = theTable;
Button1_Click の最後。次に、それへの参照を取得します
DataTable tableFromB1Click = Session["preBuiltDataTable"] as DataTable;
if (tableFromB1Click != null)
{
// do stuff here
}
Button2_Click で。