GridView在页面刷新上添加重复行

时间:2010-02-17 17:44:51

标签: asp.net

GridView在页面刷新上添加重复行 -

我有两种方法1)bindgridview()2)insertdata()

每当我通过webform插入数据并在gridview中显示数据之后,当我正在重新压缩页面或再次按f5时,插入重复记录可以有人告诉我这是什么解决方案

如果页面加载事件中的if(!page.ispostback)或插入数据,那么任何人都可以告诉我,

提前完成

3 个答案:

答案 0 :(得分:5)

我过去使用的解决方案是添加时间戳以检查回发是否为刷新。我做的是添加

Page_Load()
{
    ...
    Session["CurrentTime"] = Server.UrlEncode(DateTime.Now.ToString());
}

以及

protected override void OnPreRender(EventArgs e)
{
   ViewState["CurrentTime"] = Session["CurrentTime"];
}

然后,当调用InsertData()时,我会添加一个像这样的检查

InsertData()
{
     if(ViewState["CurrentTime"].ToString() != Session["CurrentTime"].ToString())
         return;
}
编辑:我查找了代码,这是让它工作的正确方法。希望我帮助过。

答案 1 :(得分:0)

如果在Page_Load中调用函数insertdata()而没有Postback的条件,它总是运行该函数。

更好的是在按钮单击事件上调用insertdata()函数。

如果按钮是gridview的子节点,那么您可以使用gridview的RowCommand事件来执行此操作。

答案 2 :(得分:0)

我有另一种方式进行刷新。在Page_Load()方法中,执行以下操作:

GridViewname.Columns.Clear();

这对我有用,也适用于支持AJAX的页面。