页面多次提交的问题----在线等,谢谢!(顶有分)

czhiyong_153650 2005-09-12 05:08:54
大家好,小弟现有如下问题:
我的aspx的页面上有一个LinkButton("Save"),点击Save的时候,页面向Server提交,在Server上会对数据库等操作.现在的问题是,有时候可能是因为网速稍微有点慢(我想的),当用户不小心出现双击或是多击Save,页面就多次向Server提交,Server上就会对数据库等进行多次相同的操作.(然后郁闷ing)
请各位有遇到过的或是懂得解决的回答下面的问题:
1.出现双击或是多击Save,页面就多次向Server提交,这种现象的原因是什么?
2.有什么解决的方法?或是避免的解决方案?

谢谢.
...全文
217 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
randb 2005-09-13
  • 打赏
  • 举报
回复
总结:
1.提交后disable按钮一段时间

link1.attributes.add("onclick","return test()");

function test()
{
window.document.all.link1.disabled = true;
return true;
}

//执行操作
......................

string scriptString = "window.document.all.link1.disabled = false";
if(!this.IsStartupScriptRegistered("Startup"))
this.RegisterStartupScript("Startup", scriptString);

2.在数据库端更新前检查

3.重定向到本页面(ASP的方法) Response.Redirect("CureentPage.aspx")

4.用Session,把页面提交的所有状态做成Session,每次提交时检查Sesion与当前提交内容是否相同,
如果相同,就不提交(这种方法的缺点是有点占服务器端内存)
baobei7758 2005-09-13
  • 打赏
  • 举报
回复
1。数据库做处理
2。提交之后按钮不可用。。。
good_sun 2005-09-13
  • 打赏
  • 举报
回复
加前台script

btn_name.attributes["onclick"] = "this.disabled = true;";

想着写的
wangwei27932987 2005-09-13
  • 打赏
  • 举报
回复
寫入數據庫前先驗證一下
辉说慧语 2005-09-13
  • 打赏
  • 举报
回复
大家的方法蛮多的,收藏了!
dapang731 2005-09-13
  • 打赏
  • 举报
回复
数据库难道没有主K吗
通常都是插入新的数据要先查库看看记录是否已存在
Blue13845611035 2005-09-13
  • 打赏
  • 举报
回复
还有就是if的编写,
它是判断数据库里有没有这条记录,
如果有就要弹提示框,
怎么可能用限制用户操作的方法,
来做呢!
晕~~~~~~~~~~~
Blue13845611035 2005-09-13
  • 打赏
  • 举报
回复
加个if
或在执行完成时弹出个提示,
或在完成时跳转到别的页面。
gflpower 2005-09-13
  • 打赏
  • 举报
回复
看看CSDN
[发出回复]
gflpower 2005-09-13
  • 打赏
  • 举报
回复
看看CSDN
hbtm 2005-09-13
  • 打赏
  • 举报
回复
用户多次连续点击按钮会手插相同的记录,我的方法是用户点击后让按钮不可用,操作完成后再可用
hbtm 2005-09-13
  • 打赏
  • 举报
回复
其实很简单,用户点击按钮的那个事件完成后直接用代码刷新一次,那用户刷新时就是刷新了,就不会执行那个事件了
rinf 2005-09-12
  • 打赏
  • 举报
回复
上面放个隐藏的空间 比如初始值为0
提交以后变成1
然后做下判断就可以了
windydenny 2005-09-12
  • 打赏
  • 举报
回复
IsPostBack = False里设置一个session("done")=""
当你的save按钮点后先判定sesession("done")是否"",是则执行并session("done")="yes",否则跳出
mathsword 2005-09-12
  • 打赏
  • 举报
回复
一种办法就是点一下就灰掉,另一种就是做个跳转页面,点击就跳到跳转页面,操作放到别的页面上
阿良chjlcn 2005-09-12
  • 打赏
  • 举报
回复
http://chjl.cn/Article/Read.aspx?ArticleID=82
http://chjl.cn/Article/Read.aspx?ArticleID=172
http://chjl.cn/Article/Read.aspx?ArticleID=292
CrazyWing 2005-09-12
  • 打赏
  • 举报
回复
让按钮变成不可用 设置enble = false
lovefootball 2005-09-12
  • 打赏
  • 举报
回复
你还可以在scriptString 的前面加上alert('操作成功');window.location.href=window.location.href;
防止用户刷新再次提交

另外,你提交操作的代码里应该有逻辑检查的
lovefootball 2005-09-12
  • 打赏
  • 举报
回复
你可以加个客户端事件
点击后变灰,也就是disabled = true

执行完操作后再发一段js脚本
把他变回来
感觉隔一段时间变回来不太好

link1.attributes.add("onclick","return test()");

function test()
{
window.document.all.link1.disabled = true;
return true;
}

//执行操作
......................

string scriptString = "window.document.all.link1.disabled = false";
if(!this.IsStartupScriptRegistered("Startup"))
this.RegisterStartupScript("Startup", scriptString);
tmfc 2005-09-12
  • 打赏
  • 举报
回复
点击后将按钮disable掉,很简单的js.
加载更多回复(9)

62,046

社区成员

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

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

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

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