GridView在页面刷新上添加重复行 -
我有两种方法1)bindgridview()2)insertdata()
每当我通过webform插入数据并在gridview中显示数据之后,当我正在重新压缩页面或再次按f5时,插入重复记录可以有人告诉我这是什么解决方案
如果页面加载事件中的if(!page.ispostback)或插入数据,那么任何人都可以告诉我,
提前完成
答案 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的页面。