以前的公司做过一个电话客服录入的系统,有时候服务器不稳定,客服MM点提交半天没反应,她就一直点,结果数据库里存了一溜相同的数据,所以就给提交页面加了个防止重复提交的功能,不过还是不能防止按F5刷新,自己客服用了,没那么多问题,呵呵。。。。。。。。。
主要代码如下:
//sb保存的是JavaScript脚本代码,点击提交按钮时执行该脚本
StringBuilder sb = new StringBuilder();
//保证验证函数的执行
sb.Append("if (typeof(Page_ClientValidate) == 'function') { if (Page_ClientValidate() == false) { return false; }};");
//点击提交按钮后设置Button的disable属性防止用户再次点击,注意这里的this是JavaScript代码
sb.Append("this.disabled = true;");
//用__doPostBack来提交,保证按钮的服务器端click事件执行
sb.Append(Me.ClientScript.GetPostBackEventReference(this.btnSubmit, ""));
sb.Append(";");
//SetUIStyle()是JavaScript函数,点击提交按钮后执行,如可以显示动画效果提示后台处理进度
//注意SetUIStyle()定义在aspx页面中
sb.Append("SetUIStyle();");
//给提交按钮增加OnClick属性
this.btnSubmit.Attributes.Add("onclick", sb.ToString());//btnSubmit是提交按钮