我有一个具有数据网格的 ASP.NET 网页。数据网格在按钮单击事件上加载。在加载数据网格之前,有一些方法执行,并且需要一些时间来获取数据。我想在加载网格之前显示一个进度条,为用户提供等待指示器。最好的方法是什么?
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 标签。