关于点击刷新按钮后重复提交的问题!

yzy07710 2010-09-16 05:35:50
现在有一个BUTTON按钮,功能是往数据库中插入一条新的记录,但在提交后,点击IE的刷新按钮后,刚才的数据会再一次提交,这个要怎么解决啊?请教各位大虾。。。。
...全文
191 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-09-16
  • 打赏
  • 举报
回复
点击了服务器控件,再刷新时,就会提示重试或取消,把该操作用javascript来完成,复杂的操作可以用AJAX来完成
Response.Write(" <script>window.location.href='Test.aspx'; </script>")
2
UpdatePanel
3 UseSubmitBehavior="false" OnClientClick="this.value='Sumbit';this.disabled=true; " Text="Sumbit" OnClick="btnSumbit_Click"
yzy07710 2010-09-16
  • 打赏
  • 举报
回复
luqc1985的方法虽然有点取巧,但也是最简单的方法,多谢了。
另外xhbmj的方法也可以,就是复杂了点。
多谢2位了。
无爱大叔 2010-09-16
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
PostBackOptions options = new PostBackOptions(Button1,string.Empty);

StringBuilder sb = new StringBuilder();
if (Button1.CausesValidation && this.GetValidators(Button1.ValidationGroup).Count > 0)
{
options.ClientSubmit = true;
options.PerformValidation = true;
options.ValidationGroup = Button1.ValidationGroup;

sb.Append("if (typeof(Page_ClientValidate) == 'function')");
sb.Append("if(Page_ClientValidate(\"" + Button1.ValidationGroup + "\")==false) return false;");
}
if (!string.IsNullOrEmpty(Button1.PostBackUrl))
options.ActionUrl = HttpUtility.UrlPathEncode(Button1.ResolveClientUrl(Button1.PostBackUrl));

sb.Append("this.disabled = true;");
sb.Append(ClientScript.GetPostBackEventReference(options));
sb.Append(";");
Button1.Attributes.Add("onclick", sb.ToString());
}


你也可以参考csdn的做法:
<input type="submit" name="bt_Submit" value="提交回复" id="bt_Submit" class="button" />
<script type="text/javascript"> //<![CDATA[
document.getElementById("tb_ReplyBody___Editor").style.width = "700px";
try { document.domain = "csdn.net" } catch (ex) { };
document.getElementById("bt_Submit").onclick = function() {
setTimeout(function() {
var btn = document.getElementById("bt_Submit");
btn.disabled = true;
setTimeout(function() { btn.disabled = false }, 10000);
}, 10);
}
//]]></script>
ljq2731 2010-09-16
  • 打赏
  • 举报
回复
button down button up 两个事件,区分对待。不用click
T_long 2010-09-16
  • 打赏
  • 举报
回复
那就无刷新
骑猪看海 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ylx1989 的回复:]
1、用户点击提交后禁用提交按钮

protected void Button1_Click(object sender, EventArgs e)
{
Button1.Enabled = false;
//数据添加处理代码
}
2、使用Session
在提交的页面也就是数据库处理之前添加如下代码:
if session("ok")=true then ……
[/Quote]
Button1.Enabled = false;
你认为这样有用吗,你自己试过吗,不要误人子弟
ylx1989 2010-09-16
  • 打赏
  • 举报
回复
1、用户点击提交后禁用提交按钮

protected void Button1_Click(object sender, EventArgs e)
{
Button1.Enabled = false;
//数据添加处理代码
}
2、使用Session
在提交的页面也就是数据库处理之前添加如下代码:
if session("ok")=true then
response.write "错误,正在提交"
response.end
end if
数据处理完后,修改session("ok")=false。
数据处理成功马上Redirect到另外一个页
Response.Redirect(http://www.yokowoo.com);
arjsyy 2010-09-16
  • 打赏
  • 举报
回复
跳转页面,这个是最简单的方法
别样苍茫 2010-09-16
  • 打赏
  • 举报
回复
投机取巧的办法 但也是种好方法
czhhlove 2010-09-16
  • 打赏
  • 举报
回复
数据库中设置一个主键,然后代码中try catch;
别样苍茫 2010-09-16
  • 打赏
  • 举报
回复
有个简单 比较笨的办法 但是很实用

BUTTON事件中处理完成之后 重新跳转到当前页。连数据都帮你清空了

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧