ボタンの Click イベントで、ボタンを無効にして、そのイベント ハンドラーを呼び出すことはできますか?
私はこれを試しました:
protected void Button1_Click(object sender, EventArgs e)
{
Button1.Enabled = false;
}
これは、IE、Mozilla、または Chrome では機能しません。
これを追加してみてください:
protected void Button1_Click(object sender, EventArgs e)
{
// Do some stuff here
Button1.Attributes.Add("onclick", "javascript:return false;");
Button1.Enabled = false;
}
<asp:Button ... OnClientClick="disableButton(this);" />
<script type="text/javascript">
function disableButton(button)
{
//need to delay a few ms so that the button posts back before being disabled
var buttonToDisable = button;
setTimeout("reallyDisableButton()"), 2);
}
function reallyDisableButton()
{
buttonToDisable.disabled = true;
}
</script>
あなたの問題は、人々がボタンを数回クリックしているため(ページの読み込みに時間がかかるため)、イベントを数回開始し、一度だけ実行できるようにしたいことだと思います。これにより、ポストバック後にボタンが無効になり、複数の同時ポストバックが誤って送信されるのを防ぐことができます。