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 に答える