且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

asp.net关于WEB端用户重复提交问题。禁用服务器控件按钮问题。

更新时间:2022-03-07 11:10:29

之前也经常遇到这种问题。但是没有去刻意研究并解决。也知道有很多解决方案。但是都没有去亲自实现。直到现在工作中出现这个棘手问题,才去寻找各种解决方案并研究。

还好网上有很多前辈的经验。现在问题算是解决了。因此做个笔记以防后面还会遇到此种问题。虽然这个解决方法不一定很好,但是还是可以实现的。

点击一个按钮,只让此按钮的事件执行一次,防止用户多次点击,造成多次提交数据。因为此事件的方法执行需要一段时间,如果多次点击会出现连接超时的情况。我的解决方案是点击之后禁用这个按钮,执行完方法后启用。本以为直接设置Enabled就行了,但是这样设置后,事件直接不会执行。因为是服务器空间。其实用js也可以控制。所以现在解决如下。

 protected void Page_Load(object sender, EventArgs e)
        {
                 this.report_output.Attributes["onclick"] = this.GetPostBackEventReference(this.report_output) + ";this.disabled=true;";
                this.data_output.Attributes["onclick"] = this.GetPostBackEventReference(this.data_output) + ";this.disabled=true;";
                this.message.Text = "";

            }

 

在事件方法执行后,执行以下代码

this.report_output.Style.Remove("disabled");
this.data_output.Style.Remove("disabled");