0

さて、この質問の前に、このWebサイトのすべての記事を読み、これらのソリューションの大部分を試したという事実を述べさせてください。

サーバー側のイベントがあるボタンがあります。このサーバー側のイベントには(btnSave_clickを処理します)があります。

私の最初の試みはもちろんこれでした。:

btnSave.enable = false

もちろん、これは十分な速さではありませんでした。

それから私はこれを試しました。:

btnSave.Attributes.Add("onclick", "this.disabled=true;");

この。:

btnSave.Attributes.Add("onclick", " this.disabled = true; " + ClientScript.GetPostBackEventReference(btnSave, Nothing) + ";") 

もちろん、これは機能しませんでした。その後、OnClientClickイベントを介してさまざまなjqueryとjavascriptを試しました。これも機能しませんでしたが、サーバー側のイベントも発生していることがわかったので、ステップスルー中に機能を実行していませんでした。ご覧のとおり、私はこれを機能させるために多くの時間を費やしてきました。私がここで間違っていることについて誰かが考えを持っていることを願っています。私が持っているのは、非常にシンプルなボタンとコードビハインドで、贅沢なものは何もありません。

これが私のボタンです。:

<asp:Button ID="btnSave" runat="server" Width="60px" Text="Save" Enabled="False"></asp:Button>

これがサーバー側のイベントヘッダーです。:

Private Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click

繰り返しになりますが、どんなアイデアでも大歓迎です。ありがとう。

4

4 に答える 4

1

このようなもの?

クライアント:

var buttonPressed = false;

サーバ:

btnSave.OnClientClick = "if (buttonPressed) return false else buttonPressed = true; return true;" 
于 2012-07-20T15:21:55.640 に答える
1

このようなものが機能するはずです:

 $('#yourButtonId').click(function() {
         $(this).attr('disabled', 'disabled');
    });
于 2012-07-20T15:22:02.117 に答える
1

ボタンをクリックしてjavascriptで無効にすると、クライアントで無効になり、サーバー側がビューステートでコントロールプロパティをチェックするため、サーバー側はクライアントで無効になっていることを認識しません。クリックしてポストバックした後も無効にしておきたい場合は、クライアントとサーバーの両方で無効にする必要があります。

クライアント側

$('#<%= btnSave.ClientID %>').click(function() {
         this.disabled = true;
    });

サーバー側

btnSave.enable = false
于 2012-07-20T15:29:37.907 に答える
0

これはより賢い解決策です:サーバー:

    <asp:Button ID="btnSave" runat="server" Width="60px" 
Text="Save" Enabled="False" OnClientClick="return preventDblClick()" ></asp:Button>

クライアント:

var dbl = 0;
function preventDblClick() {
    if (dbl < 1) {
        dbl += 1;
        return true;

    } else {
        return false;

    }
}
于 2015-01-12T14:50:09.017 に答える