ASP.NET には非常に単純な問題があり、さまざまな形式で既に遭遇しましたが、答えが見つかりませんでした。
問題は、ポストバック イベント (OnClick
ボタンのイベントなど) に応答していくつかの計算を行いたいことGridView
ですDataObjectSource
。
問題は、イベントDataObjectSource
を実行する前に、ページのライフサイクルが を埋めようとすることです。OnClick
この順序が一般的に理にかなっている理由はわかりますが、それが機能するようにコードを変更する方法がわかりません。結果変数を初期化するかどうかに応じて、null Pointer 例外が発生するか、単に空のテーブルが発生します。
コードの関連部分を次に示します。
Page_Load()
{
GridView1.Visible = IsPostBack;
}
DataTable result;
Btn_Click()
{
// do some calculations
result = ...;
}
GetData()
{
return result;
}
GetData()
以前に呼び出されたように、Btn_Click()
テーブルは空です (またはnull
ここでも)。