2010-02-17 24 views
0

GridView的上頁refresh--的GridView添加頁上的重複行刷新

我有兩種方法1)bindgridview()2)insertdata()

每當我通過插入網絡表單的數據添加重複的行並在gridview中顯示數據後,當我refresshing頁面或再次按F5重複記錄插入任何人都可以告訴我什麼是這種解決方案

其中應該是如果(!page.ispostback)在頁面加載事件或插入數據任何人都可以告訴我,,

Thanx提前

+0

Duplicate:http://stackoverflow.com/questions/743580/page-refresh-causes-duplicate-post-in-asp-net-applications – 2010-02-17 17:52:22

+0

我查了一下代碼,現在它應該適合你。 – 2010-02-17 18:55:31

回答

5

我過去使用的解決方案是添加時間戳以檢查Postback是否爲刷新。我所做的就是添加

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; 
} 

編輯支票:我擡頭代碼,這是使它工作的正確方法。希望我幫了忙。

+0

Thanx dude我知道了 – user242375 2010-02-18 11:42:44

+2

@ thinker07如果您將答案標記爲已接受,以便其他用戶知道它的工作原理(並且我也會收到我的開心點;-)) – 2010-02-18 12:22:21

+0

@ user242375您應該接受此答案它不會顯示爲未答覆。 – 2014-06-23 14:33:49

0

如果您在Page_Load中調用函數insertdata()而沒有回發條件,它總是運行該函數。

最好是在button click事件上調用insertdata()函數。

如果按鈕是gridview的子項,那麼可以使用gridview的RowCommand事件來完成此操作。

0

我有另一種刷新方式。在你Page_Load()方法,做到以下幾點:

GridViewname.Columns.Clear();

這個工作對我來說,也是行之有效的AJAX啓用頁面。