<table id="listpanel" runat="server">列表
<table id="addpanel" runat="server">添加
<table id="editpanel" runat="server">修改我把添加,修改,列表显示写在一个文件中,我是用Visible=true或着是false来控制那么面板显示或不显示的,但是添加完后(添加面板中有个提交按钮),提交后addpanel.Visible=false,editpanel.Visible=false,listpanel.Visible=true,listpanel重新绑定显示列表。但是,这个时候(在列表显示页面)按F5刷新页面的时候,又添加了一条上次提交的记录。兄弟们指导一下了,怎么样避免啊,郁闷的不行了。

解决方案 »

  1.   

    f5刷新相当于又进行了一次请求,因此又存了一条。这和那几个table的是否可见没有关系的。
      

  2.   

    在提交后写
    Page.RegisterStartupScript(Guid.NewGuid().ToString().Trim(), "<script language='javascript'>window.location.href = window.location.href;</script>");
      

  3.   

    to : karykwan(独行者) 麻烦告诉我这句话的意思,拜托了!具体点。真的可以了。一定要具体点。还有,我在页面源文件中怎么看不到RegisterStartupScript注册的客户端的脚本啊。
      

  4.   

    同意bidisty的方法。还有就是提交完成后转到别的页面。还有就是在该页面加一隐藏input标记,记录当前录入的标识(ID),在存储时检查ID是否已存在
      

  5.   

    在提交后写Response.write("<script language='javascript'>history.go(-1);</script>");
      

  6.   

    to:bidisty(浪漫草)问题是已经到列表页面了,别人要刷新那你有什么办法啊。
    还有就是别人刷新的是列表页面,你如果提示“已经存在了,不能添加”。别人就会认为程序问题。他根本没有再次提交啊
      

  7.   

    karykwan(独行者) 的办法可以解决,但是大家能帮我分析一下他的代码的意思吗?还有那段代码明明注册了客户端的脚本,为什么我在页面源文件中怎么看不到RegisterStartupScript注册的客户端的脚本啊
      

  8.   

    我明白了Guid.NewGuid().ToString()可能是产生一个唯一的字符串标志。以免RegisterStartupScript注册重复而出错。
    window.location.href = window.location.href就不明白了。
      

  9.   

    window.location.href = window.location.href  就是刷新一下  操作前先判断数据库里是否有值 有就进行修改操作没有就进行添加操作。
      

  10.   

    谢谢大家,还有一个,为什么我在页面源文件中怎么看不到RegisterStartupScript注册的客户端的脚本啊