我意识到这个问题已经被问到,但没有一个答案适用于我的项目.
我有一个按钮,当点击时调用API,因此有1秒的延迟.
我尝试过几件事情都没有用.
btnSave.Attributes.Add("onclick", " this.disabled = true; " + ClientScript.GetPostBackEventReference(btnSave, null) + ";");
Run Code Online (Sandbox Code Playgroud)
即使这样做也没有.
小智 27
防止双击.请在您的aspx页面中添加以下代码.
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
function BeginRequestHandler(sender, args) { var oControl = args.get_postBackElement(); oControl.disabled = true; }
</script>
Run Code Online (Sandbox Code Playgroud)
Ant*_*y D 21
该解决方案简单有效.在您的按钮上包含以下代码:
OnClientClick="return CheckDouble();"
Run Code Online (Sandbox Code Playgroud)
无论你想要什么,你的JavaScript - 例如在你的页面底部:
<script type="text/javascript">
var submit = 0;
function CheckDouble() {
if (++submit > 1) {
alert('This sometimes takes a few seconds - please be patient.');
return false;
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
上述大部分建议对我来说都不起作用。tezzo 所做的工作如下:
Me.btnSave.Attributes.Add("onclick", "this.disabled=true;")
Me.btnSave.UseSubmitBehavior = False
Run Code Online (Sandbox Code Playgroud)
更简单的是,不要在代码隐藏中使用上面的内容,只需使用以下内容:
<asp:Button ID="btnSave" runat="server" Text="Save"
UseSubmitBehavior="false"
OnClientClick="this.disabled='true';"
</asp:button>
Run Code Online (Sandbox Code Playgroud)
UseSubmitBehavior="false"是关键。
您可以使用以下代码防止双击:
Me.btnSave.Attributes.Add("onclick", "this.disabled=true;")
Me.btnSave.UseSubmitBehavior = False
Run Code Online (Sandbox Code Playgroud)
这样你就可以用来btnSave_Click调用你的API了。
通常我的: 设置Validators中有很多,如果验证失败,我可以运行此代码来重新启用保存按钮。PageValidator.SetFocusOnError = True
Me.YourControl.Attributes.Add("onfocus", Me.btnSave.ClientID & ".removeAttribute('disabled');")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31666 次 |
| 最近记录: |