2017-10-25 10 views
0

Insertボタンをクリックすると、それは何をするかを行います。しかし、ユーザーがボタンを2回以上クリックできないようにしたいので、一度押すと無効にしたいと思っています。ボタン無効とコードビハインド機能(JavaScript +コードビハインド)を組み合わせることはできません

<asp:Button ID="Insert" runat="server" Text="Send" OnClick="Insert_OnClick" 
    OnClientClick="this.disabled=true; showLoading(this);" /> 

それが何らかの形でコードビハインド機能文句を言わない最初ので、ボタンを無効にすることを理由に実行するので、Insert_OnClickと「disable」、機能Insert_OnClick文句を言わないの実行を組み合わせます。

また、showLoading js-functionでボタン自体を無効にしようとしましたが、同じ動作です。

コードビハインド機能をボタンとして実行させるにはどうすればいいですか?

答えて

2

コードを無効にする必要があります。あなたがクリック後にそれを無効にしたとしても、JavaScriptで行われた変更はPostBackの後で元に戻されます。

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Insert.Enabled = false; 
} 

または、OnClientClickでタイムアウトを設定しますか?多分それはうまくいくでしょう。

OnClientClick="setTimeout(function() { this.disabled=true; }, 10);" 
+0

このボタンを押すと別のページにリダイレクトされることを忘れていたので、 'btnInsert.Enabled = false;'は必要ありません。しかし、あるプレスの後にボタンを無効にする必要があるので、リダイレクトされる前にコードビハインド機能をダブルクリックして2回実行することはできません。 – ipid

+0

まだ、ダブルクリックは問題ではありません。しかし、本当にそれを防ぐには、セッションをコードの背後に設定し、2回目のクリックでそれをチェックし、Page2で削除します。 – VDWWD

+0

ダブルクリックが問題です。私は間違っているかもしれませんが、セッションソリューションはそれを過度にするように聞こえます。私はボタンが無効になるとコードを実行できるように、JavaScriptを使ったより簡単なソリューションがあると思います。 – ipid

関連する問題