ExecuteSqlCommand运行

时间:2017-11-22 14:32:58

标签: c# asp.net entity-framework

不使用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;
            }
        }
    }
}

2 个答案:

答案 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)+“;”);