1

我有一个 asp.net Web 应用程序,当您单击一个按钮时,它会执行我所有的东西,但它很慢,需要 10 到 15 秒才能工作,而且我不希望用户在网站繁忙时点击该按钮的垃圾邮件。所以我的计划是禁用按钮并让它下面的标签变得忙碌并说“正在运行”,完成后按钮会重新激活并且标签会说“完成”但是这个按计划工作的是我的代码按钮监听器。

 protected void SubmitButton_Click(object sender, EventArgs e)
    {
        SubmitButton.Enabled = false;
        RunStatus.Text = "Running";
        RunStatus.Visible = true;
        ErrorField.Visible = false;

//i deleted all my code that actually does the stuff that takes time from here

        RunStatus.Text = "Done";
        SubmitButton.Enabled = true;
    }

问题是所有的视觉效果都是在方法运行之后发生的,所以当它运行时没有任何改变,但是在它完成了文本字段显示之后。我也很高兴有一个忙碌的光标,但这是次要的。

4

2 回答 2

2

将您的按钮包装在 an 中UpdatePanel并使用UpdateProgress控件向客户端显示 AJAX 调用正在发生。有关更多信息,请参阅本教程

于 2012-07-30T15:22:06.543 回答
0

很抱歉,您对 ASP.NET 页面生命周期的了解存在根本性的差距。它与 Windows 窗体确实非常不同——这就是您发布的代码适用的类型。

我恭敬地建议你拿一本关于 ASP.NET 的好书,并尝试建立一个关于 ASP.NET 在 HTTP/HTML 上的抽象的基本理解。

于 2012-07-30T15:22:43.470 回答