اکثر مواقع نیاز داریم که از کلیک تکراری بر روی دکمهها جلوگیری کنیم. روشهای متفاوتی برای این کار وجود داره، چه از سمت کاربر و چه از سمت سرور.
2 روشی که برای من کارآمدتر بود رو اینجا قرار میدم.
I.
$(function () { $("input[type='submit']").click(function () { if (Page_ClientValidate()) { $(this).val("صبر کنید..."); $(this).prop("disabled", true); __doPostBack(this.name, ''); } }); });
II.
protected void Page_Load(object sender, EventArgs e) { try { DisableSubmitButton(btnSend); DisableSubmitButton(btnRefresh); } catch (Exception err) { } } public static void DisableSubmitButton(Button button) { button.Attributes.Add("onclick", "this.disabled=true;this.value='صبر کنید...';" + button.Page.ClientScript.GetPostBackEventReference(button, string.Empty)); }
یا استفاده از روش زیر:
<asp:Button runat="server" ID="btnExport" Text="دریافت فایل اکسل" CssClass="btn btn-info" OnClick="btnExport_Click" OnClientClick="DisableButton()" />
function DisableButton() { $('#<%=btnExport.ClientID%>').val('صبر کنید...'); $('#<%=btnExport.ClientID%>').prop('disabled', true); javascript:__doPostBack('<%=btnExport.UniqueID%>', ''); }