0

我在禁用ASP.Net中的按钮时遇到问题

循环时我无法禁用按钮

我的代码示例:

private void button1(object sender, EventArgs e)
{
    button1.Enabled = false;

    for(int i = 0; i < 1000000; i++)
    {
         for(int j = 0; j < 1000000; j++)
         {
            for(int k = 0; k < 1000000; k++)
            {

            }
         }
    }
}

在禁用按钮之前,我仍然需要等待完成 for 循环的执行。在执行for 循环之前,我应该怎么做才能禁用我的按钮

4

2 回答 2

1

您最好的选择是在表单回发之前使用一小段 javascript 代码来禁用该按钮。你拥有它的方式是行不通的。我假设您试图阻止用户在长时间运行的操作发生时多次单击该按钮。

这样的东西:

<INPUT name="myButton" type="submit" onclick="document.form1.myButton.disabled=true;document.form1.submit();">

如果您已经在使用 jquery,那么还有更好的方法。

于 2013-01-29T12:12:13.307 回答
0

您实际上缺少 ASP.Net 页面生命周期的基本概念。仅当从服务器返回响应时(显然是在循环完成之后),该按钮才会被禁用。现在,如果您想禁用它,那么您将不得不按照 EJ Brenan 的建议使用 Javascript 或 Jquery。

页面生命周期: http: //msdn.microsoft.com/en-us/library/ms178472 (v=vs.100).aspx

于 2013-01-29T12:19:19.563 回答