2015-09-27 58 views
0

考慮以下代碼如何防止asp.net頁面重置數據表?

DataTable dt = new DataTable() ; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
      dt.Columns.Add("RowIndex"); 
      dt.Columns.Add("FilterText"); 
    } 

我將用一些數據執行程序中填寫這個數據表。但是當我點擊一個按鈕,頁面將重新加載代碼,我的數據將會丟失。 我該如何防止Web窗體創建新的數據表並保存我的數據?

我的控件位於更新面板中。

回答

0

爲每個請求創建該類的新實例。如果你想從一個請求保存到另一個請求,你需要使用不同的機制。

例如一個全球性的。但是在全局通常的問題之上,您需要處理多個併發請求,從而實現多線程和鎖定。

通常的做法是將持久狀態存儲在數據庫中,在處理該請求的開始時加載每個請求的信息。

+0

多麼困難解決方案!!!! – Behnam

+0

@Behnam:客戶端更難:HTTP是無狀態的。 – Richard

0

您可以使用視圖狀態來解決問題..

DataTable dt; 

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      dt = new DataTable(); 
      dt.Columns.Add("RowIndex"); 
      dt.Columns.Add("FilterText"); 
     } 
     else 
     { 
      if (ViewState["vsDT"] != null) 
       dt= ViewState["vsDT"] as DataTable; 
     } 
    } 
+0

不錯的答案。 @RAVI VAGELA –

相關問題