JavaScriptボタンをクリックすると無効になり、ダブルクリックを防止するためにほとんどの場合動作しますが、場合によっては動作しないため、サーバーからのダブルクリックも防止します側。ダブルクリックのシナリオではサーバー側からボタンダブルクリックを防止する方法
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
hfid.value="0";
}
}
protected void frmSubmit_Click(object sender, EventArgs e)
{
if(Convert.ToInt32(hfid.value) == 0)
{
// Code of insert
// then I set hfid.value with newly created id
}
}
<asp:Button ID="frmSubmitInsert" runat="server" OnClick="frmSubmit_Click" OnClientClick="GRVMasterAddButton_Click(this)" Text="Add"
Width="100px" Visible="false" ValidationGroup="masterGrp" />
function GRVMasterAddButton_Click(btn)
{
if (window.Page_ClientValidate('masterGrp'))
{
document.getElementById(btn.id).disabled = true;
__doPostBack(btn.id, '');
}
}
、2回のラウンドトリップは、それがokですgenerated.Inまず往復ですが、私は新しく挿入されたIDを持つhfid.value設定していても第二ラウンドトリップで、それが再び私に0を示し、重複レコードが生成されます。
サーバー側ではないが、クリックした後でボタンを非表示にすることができます! –
この前の質問を確認してください:https://stackoverflow.com/questions/106509/disable-button-on-form-submission回答は、サーバー側とクライアント側の両方のソリューションを提案します –
ボタンを無効にするか非表示にすることができます – Hemal