在ASP.NET AJAX中,当我单击一个按钮时,一个昂贵的进程就是调用,大约有100多个项目在循环中逐步进行。当进度正在运行时,如何在按钮的文本上显示百分比文本?
例如:
protected void btn_ExpensiveProcess_Click(object sender, EventArgs e)
{
for (int i = 0; i < MyCollection.Count; i++)
{
double Percent = i/MyCollection.Count * 100;
btn_ExpensiveProcess.Text = Percent + "% " + " Has Been Done";
}
}
答案 0 :(得分:0)
对于服务器上的长时间运行进程,我发现实现此目的的最简单方法是AJAX轮询您的服务器。
您需要在服务器上使用某种指示器,无论是将进度存储在数据库中(添加的记录数)还是存储在文本文件中。您需要AJAX在定时函数中轮询服务器,直到长时间运行的过程完成。然后,您可以更新AJAX轮询方法的成功回调中的按钮文本。
警惕在调用之间给你的轮询功能足够的时间,这样你就不会创建一个庞大的队列。