调用AJAX时显示Button文本的进度百分比

时间:2013-10-02 16:21:13

标签: c# ajax button progress

在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";
     }
}

1 个答案:

答案 0 :(得分:0)

对于服务器上的长时间运行进程,我发现实现此目的的最简单方法是AJAX轮询您的服务器。

您需要在服务器上使用某种指示器,无论是将进度存储在数据库中(添加的记录数)还是存储在文本文件中。您需要AJAX在定时函数中轮询服务器,直到长时间运行的过程完成。然后,您可以更新AJAX轮询方法的成功回调中的按钮文本。

警惕在调用之间给你的轮询功能足够的时间,这样你就不会创建一个庞大的队列。