我确实有 ASP.NET 页面,它通过 Page_Load 上的 SqlDataSource 调用存储过程并绑定 GridView。在 PageLoad 我正在做这样的事情:
string connectionString = BLTutela.BLclsDatabaseConfigurations.GetDefaultConnectionString();
dataSource.ConnectionString = connectionString;
dataSource.SelectParameters["ReportFromDate"].DefaultValue = reportFromDateValue.Date.ToString();
...
GridView1.DataSource = dataSource;
GridView1.DataBind();
dataSource 是 SqlDataSource 并调用 StoredProcedure。代码可以运行,但它只是第一个版本,因为可能存在以下问题(我认为这些问题可能会发生,因为它是生成很长报告的报告页面):
1) 存储过程可能运行时间过长 -> 可能会发生 SessionTimeout 并且用户在很长一段时间内都看不到系统的任何响应
2)即使存储过程已经完成,将数据加载到gridview中也可能是一个很长的过程。这可能会导致另一个会话超时。
我需要一个解决方案,1)不显示长服务器进程(存储过程)的会话超时 2)在 gridview 中显示数据不超时,3)在加载数据时显示进度条。
我从未使用过 Threads 或 AsyncCalls,所以我想先做一些调查。
现在我找到了以下链接: http: //madskristensen.net/post/Asynchronous-GridView-in-5-simple-steps.aspx 我想知道这是否适用于我的情况以及我不知道的问题.