不使用Ajax,如何在ExecuteSqlCommand运行时禁用按钮?在执行完成之前,我不希望用户多次单击该按钮
修改
网络应用是ASP.Net。
HTML:
<asp:Button runat="server" ID="btnYes" Text="Yes" OnClick="btnYes_Click" CssClass="btn btn-primary" />
代码隐藏:
protected void btnYes_Click(object sender, EventArgs e)
{
if (start date is supplied && parse TextBox, out from)
{//pseudo code
if(end date is supplied && parse TextBox, out to)
{//pseudo code
using (MyEntities dc = new MyEntities())
{
SqlParameter paraType = new SqlParameter("@type", ddl.SelectedValue);
SqlParameter paraSDate = new SqlParameter("@start", from);
SqlParameter paraEDate = new SqlParameter("@end", to);
dc.Database.ExecuteSqlCommand("sp_MyStoredProcedure @type, @start, @end", paraType, paraStart, paraEnd;
}
}
}
}
答案 0 :(得分:0)
您可以在表单/ url中使用nonce并在服务器端检查以避免重复执行,或者您可以使用JavaScript来阻止按钮/表单/页面;例如与JQuery:
$('#myForm').submit(function(){
$('#myForm button').attr('disabled', 'disabled');
});
答案 1 :(得分:0)
在Page_Load中添加此行按我的意愿工作。
btnYes.Attributes.Add(“onclick”,“this.disabled = true;”+ ClientScript.GetPostBackEventReference(btnYes,null)+“;”);