我有一个asp.net网页,它会执行一系列(慢速,因此问题)计算并将它们全部转储到网页中的数据网格中。我希望能够让页面显示部分结果。
我已经想出了每次完成一行时如何重新更新网格,但在完成所有计算之前,页面仍然不会显示结果。有没有人知道来自asp.net的调用可以告诉页面刷新自己?
P.S。我目前使用的更新功能如下:
private void updateDisplay(DataTable outputTable)
{
if (outputTable.Rows.Count > 0)
{
PlaceHolder1.Controls.Clear();
PlaceHolder1.Controls.Add(new LiteralControl("<br>"));
GridView myView = new GridView();
myView.DataSource = outputTable;
myView.DataBind();
myView.Visible = true;
PlaceHolder1.Controls.Add(myView);
}
}
答案 0 :(得分:0)
您可以随时使用类似Ajax Timer的内容以及一些efficient paging(仅提取少量数据而非所有内容)。
这样你就可以在每3秒的间隔内为10条记录做一个简短的select语句,你可以在进程线程之外进行。
如果您希望每次添加一行时都更新网格,那么这样做也很好,那么请确保您启动重量级,提升过程一个单独的BackgroundWorker。我还是会实现更有效的分页,以保持你的select语句小而简化。