加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 单击后禁用Button,同时保持CausesValidation和OnClick-Met

发布时间:2020-12-16 01:50:00 所属栏目:百科 来源:网络整理
导读:所以我有这个按钮: asp:Button runat="server" ID="btnSubmit" meta:resourcekey="btnSubmit" CausesValidation="true" OnClick="btnSubmit_Click" / meta:resourcekey用于本地化资源,这里不关心我们 – 因为我们可以看到它有一个OnClick-Method并导致验证
所以我有这个按钮:

<asp:Button runat="server" ID="btnSubmit" meta:resourcekey="btnSubmit" CausesValidation="true" OnClick="btnSubmit_Click" />

meta:resourcekey用于本地化资源,这里不关心我们 – 因为我们可以看到它有一个OnClick-Method并导致验证.

这也很好,但我想在用户点击它之后禁用该按钮,这样他/她在PostBack成功之前就不能多次点击它,所以这就是我在Page_Load中所做的:

btnSubmit.Attributes.Add("onclick","this.disabled=true;" +
        Page.ClientScript.GetPostBackEventReference(btnSubmit,"").ToString());

onclick我正在禁用该按钮并重新添加OnClick-Method所需的PostBackReference.

问题:CauseValidation消失了,悲伤.我将如何在CodeBehind中重新添加它或者 – 这是一个完全不同的解决方案?

我的按钮必须:

a)单击后禁用自身,但在回发后启用
b)有一个OnClick CodeBehind方法
c)导致验证

谢谢,

丹尼斯

解决方法

只需覆盖ur页面或母版页的Onload事件

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
   // prevents form from being submitted multiple times in MOST cases
   // programatic client-side calls to __doPostBack() can bypass this
    Page.ClientScript.RegisterOnSubmitStatement(GetType(),"ServerForm","if (this.submitted) return false; this.submitted = true; return true;");
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读