求助:使用Listview控件插入的时候,如何解决刷新的同时重复插入的问题?

snsn1984
博客专家认证
2009-07-23 02:38:48
使用Listview控件进行数据操作。如果我进行完插入操作后,这时候我刷新网页,并选择重试,这时候刷新出的结果就是重复插入了刚才插入的信息。请教如果解决这个问题?
...全文
205 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
snsn1984 2009-07-29
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 watsonchia 的回复:]
引用 15 楼 snsn1984 的回复:
引用 14 楼 watsonchia 的回复:
就是你插入数据后写:Response.Redirect(Request.Url.ToString());
禁止浏览器后退那几句倒是在page_load里写

但是我插入数据是直接用的控件的插入按钮。这样的话,怎么去写啊?


用什么控件插入?detailview或formview之类的话,可以在插入完成后的事件比如ItemInserted等里写代码
[/Quote]
我用的是LISTVIEW。十分感谢,按照你的办法已经解决了。
watsonchia 2009-07-27
  • 打赏
  • 举报
回复
就是你插入数据后写:Response.Redirect(Request.Url.ToString());
禁止浏览器后退那几句倒是在page_load里写
snsn1984 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 watsonchia 的回复:]
Response.Redirect(Request.Url.ToString()); 这句在提交以后写,你若写在page_load里,永远显示不了页面。
[/Quote]
楼上的,可以说的再详细点吗?谢谢了。
因为我用的是LISTVIEW控件。所以我写到page_load里了。
你的写在提交后的意思是?
watsonchia 2009-07-27
  • 打赏
  • 举报
回复
Response.Redirect(Request.Url.ToString()); 这句在提交以后写,你若写在page_load里,永远显示不了页面。
snsn1984 2009-07-27
  • 打赏
  • 举报
回复
还是没有解决啊。继续求解决的方法。。。。。。
vip__888 2009-07-27
  • 打赏
  • 举报
回复
if (!IsPostBack)
{
//逻辑代码
}
fanlose2 2009-07-27
  • 打赏
  • 举报
回复
添加完毕后,重新跳到这个页面就行了。
windows.location.href=windows.location.href;
watsonchia 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 snsn1984 的回复:]
引用 14 楼 watsonchia 的回复:
就是你插入数据后写:Response.Redirect(Request.Url.ToString());
禁止浏览器后退那几句倒是在page_load里写

但是我插入数据是直接用的控件的插入按钮。这样的话,怎么去写啊?
[/Quote]

用什么控件插入?detailview或formview之类的话,可以在插入完成后的事件比如ItemInserted等里写代码
冷月孤峰 2009-07-27
  • 打赏
  • 举报
回复
最好的办法就是将插入和显示放在两个不同的页面,插入数据后转到显示页面
snsn1984 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 watsonchia 的回复:]
就是你插入数据后写:Response.Redirect(Request.Url.ToString());
禁止浏览器后退那几句倒是在page_load里写
[/Quote]
但是我插入数据是直接用的控件的插入按钮。这样的话,怎么去写啊?
snsn1984 2009-07-24
  • 打赏
  • 举报
回复
但是问题还是没有解决。我将上面的两个都放到LOAD里面试了下。
Response.CacheControl = "no-cache"; 这个结果是没有效果。
Response.Redirect(Request.Url.ToString()); 这个结果是打开的是空白页,而且很慢。
snsn1984 2009-07-24
  • 打赏
  • 举报
回复
我说的其实就是点击页面的刷新。谢谢大家。
Jinglecat 2009-07-23
  • 打赏
  • 举报
回复
如 慕白 所说,

其中 第二种,即 Response.Redirect , 防止 back 可以简单禁用缓存 Response.CacheControl = "no-cache"
watsonchia 2009-07-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hdhai9451 的回复:]
protected void Page_Load(object sender, EventArgs e)
{

    if (!IsPostBack)
    {
        在这里插入,不会出现重量插入
    }
}

[/Quote]

如果楼主说的刷新指单击浏览器的刷新,这样写法仍然会重复post数据 -)
watsonchia 2009-07-23
  • 打赏
  • 举报
回复
插入数据后在程序里刷新就没这种情况了,只需要一句:Response.Redirect(Request.Url.ToString());
yanhuanghero 2009-07-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hdhai9451 的回复:]
protected void Page_Load(object sender, EventArgs e)
{
   
    if (!IsPostBack)
    {
        在这里插入,不会出现重量插入
    }
}

[/Quote]
ding
wenblue7 2009-07-23
  • 打赏
  • 举报
回复
楼上已解决
Andy__Huang 2009-07-23
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)
{
在这里插入,不会出现重量插入
}
}
cpp2017 2009-07-23
  • 打赏
  • 举报
回复
一般防止重复提交有以下几种方法:(当然还有其他的)

1.关键字有唯一索引,这个基本就不用操心了,再insert会重复。
2.要求不是很高的,跳转到另一个页面,当然他可以回退后再刷新。
3.要求高的,在页面转入时生成一个随机码,同时放在hidden和session中,每次都更新,
insert前判断这两者是否一致。
cpp2017 2009-07-23
  • 打赏
  • 举报
回复
这个与listview控件没关系,任何通过页面插入数据都有这种情况,

62,017

社区成员

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

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

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

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