データグリッドを持つ ASP.NET Web ページがあります。データグリッドは、ボタン クリック イベントで読み込まれます。データグリッドをロードする前にいくつかのメソッドが実行され、データを取得するのに時間がかかります。グリッドがロードされる前に、進行状況バーを表示してユーザーに待機中のインジケーターを表示したいと考えています。それを行う最善の方法は何ですか?
protected void btnStart_Click(object sender, ImageClickEventArgs e) {
_bw = new BackgroundWorker();
_bw.DoWork += bw_DoWork;
_bw.RunWorkerCompleted += bw_RunWorkerCompleted;
_bw.RunWorkerAsync();
waiting.Style["display"] = "inline";
divDataGrid.Style["display"] = "none";
}
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
int n = Convert.ToInt32(e.Argument);
e.Result = PerformBinding(n, worker, e);
}
private bool PerformBinding(int n, BackgroundWorker worker, DoWorkEventArgs e)
{
Service.Start();
BindDataGrid();
return true;
}
private void BindDataGrid()
{
//take some time to get data
}
private void bw_RunWorkerCompleted(object sender,
RunWorkerCompletedEventArgs e)
{
waiting.Style["display"] = "none";
divDataGrid.Style["display"] = "inline";
}
ここで、「waiting」は進行状況バーを待機するための div タグ ID であり、「divDataGrid」はそのグリッドを含む div タグです。