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

snsn1984
博客专家认证
2009-07-23 02:38:48
使用Listview控件进行数据操作。如果我进行完插入操作后,这时候我刷新网页,并选择重试,这时候刷新出的结果就是重复插入了刚才插入的信息。请教如果解决这个问题?
...全文
206 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控件没关系,任何通过页面插入数据都有这种情况,
vf6.0,要考二级没系统的下哈 Microsoft Visual FoxPro 6.0 for Windows 的常见问题 这些是有关 Microsoft Visual FoxPro 最常见的问题。在您求助 Microsoft 产品支持服务之前,请先查阅这张列表。 若想打印这些附注,请从“文件”菜单中选择“打印”命令。此文档分为以下四部分: --------------------------------------------------------------------- 部分 1. 技术支持与市场 部分 2. Visual FoxPro 6.0 新增功能 部分 3. 从其他版本的 FoxPro 和 Visual FoxPro 中移植 部分 4. Visual FoxPro 常见问题 --------------------------------------------------------------------- 部分 1. 技术支持与市场 问题 1-1: 从何处可以获得产品的更新版本? 答案: 在 Visual FoxPro 的 Web 站点上即可获得产品的更新信息,其中包括有关 Service Pack 和更新的示例、向导及其他代码的信息,该站点的网址为: www.microsoft.com/vfoxpro 请定期查看该网站,以便下载产品的最新版本。 问题 1-2: 从何处可以得到有关 Visual FoxPro 的详细资料? 答案: 通过 Microsoft Visual FoxPro Web 站点是随时获得各种最新产品发布信息的最佳途径。在此站点上不仅有新的产品公告,而且还提供了产品的更新信息、技术文章、白皮书、专业开发人员设计的优秀示例、会议公告、以及与其他许多 FoxPro web 站点的各种链接。 问题 1-3: 如何获得技术支持,以及如何报告软件错误? 答案: Microsoft Visual FoxPro Web 站点已经链接到了多种联机支持选项,其中包括覆盖面广阔的有关所有产品 Microsoft Knowledge Base(Microsoft 知识库)。您还可以阅读一份有关常见问题的清单。除联机支持之外,还可以直接通过电话获得技术支持。“帮助”菜单中的选项可列出技术支持的电话号码。这些电话号码也可用于报告产品中的错误。 问题 1-4. 什么是 Knowledge Base?如何使用它? 答案: Knowledge Base 是内容广泛的论文集,覆盖了如何使用产品的各种特性、已知的软件错误及其解决方案或回避的方法、以及其他有助于使用各种 Microsoft 产品的有用信息。通过以下站点可访问整个 Knowledge Base: support.microsoft.com 问题 1-5: 是否会有 Visual FoxPro 6.0a? 答案: Microsoft 公司一向承诺为用户提供高质量的产品。如果确实需要,我们将提供 Visual FoxPro 6.0 的错误修订版。但是,修订版不会使用 6.0a 版的形式。Visual FoxPro 6.0 中任何错误的修正都将包含在 Visual Studio Service Pack 中。同时还会在 Visual FoxPro 的 www.microsoft.com/vfoxpro 或 Visual Studio 的www.microsoft.com/vstudio 的 Web 站点上发布修订公告。 问题 1-6: Microsoft 公司为应用程序的开发提供了一些优秀的解决方案。怎样才能知道应该向客户推荐和使用哪种产品? 答案: 在选择适用某项任务的产品时,需要考虑多方面的因素。Microsoft Visual FoxPro web 站点上有一份优秀的策略背景论文,它比较了 Visual FoxPro、Visual Basic、SQL Server 和 Access 等 Microsoft 产品之间的不同。 问题 1-7: 哪里可以找到 Visual FoxPro 的使用示例? 答案: Visual FoxPro 6.0 产品中带有丰富的示例,其中有一些是针对 6.0 版特有功能的新示例。与 Visual FoxPro 以前的版本不同,这些示例将与所有 Visual Studio 示例安装在一起。您必须运行 MSDN Library 的“自定义”安装来安装这些示例。在 Visual FoxPro 中可使用新的 HOME(2) 函数方便地找到已安装示例的位置。 除了产品中所自带的示例外,Microsoft Visual FoxPro web 站点还将经常提供新的示例。

62,041

社区成员

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

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

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

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