2013-10-24 40 views
1

我試圖跟蹤一些值,這些值是從數據庫中的新記錄增加的。當頁面重新加載時,這些值並沒有出現。ViewState變量不會出現在

這是我與嘗試它的屬性(只是所有記錄的計數我檢索):

public int last 
{ 
    get 
    { 
     if (ViewState["last"] != null) 
      return (int)ViewState["last"]; 
     return 0; 
    } 
    set 
    { 
     ViewState["last"] = value; } 
    } 

而且我想這樣顯示的:

protected void Page_Load(object sender, EventArgs e) 
{ 
    string output = "Last Time: " + last + ", this time: " + DbData.Count; 
    last = DbData.Count; 
    Response.Write(output); 
} 

不幸的是,每次輸出都是這樣的:Last Time: 0, this time: 232253

我有這個網站上IIS運行,並且我已經檢查,以確保視圖狀態已啓用:

Pages and Controls


,我不知道還有什麼嘗試,任何人都可以建議修復?

+0

我認爲你需要改變(字符串輸出)和(最後= DbData.Count;)在線訂購(最後= DbData.Count;) – errorintheapplication

+0

前後(字符串輸出)我第一次使用'last'我我正在使用上次應該設置的值,然後在下一行中更新它。即使這些線條倒退,我仍然會在輸出中看到除「0」之外的其他東西。 – Tyler

+0

你如何重新加載頁面? – Win

回答

0

我不熟悉FusionCharts。但是,ViewState僅適用於當前頁面的生命週期。

您可能想要嘗試在頁面之間保存數據的SessionState。

public int last 
{ 
    get 
    { 
     if (Session["last"] != null) 
      return (int)Session["last"]; 
     return 0; 
    } 
    set { Session["last"] = value; } 
} 
+0

這工作。 'Session'和'ViewState'唯一的區別在於它們的生命週期? – Tyler

+0

在初始頁面加載時,ViewState始終爲空。另一方面,SessionState維護以前保存的數據。 ***我猜***在你的情況下,FusionCharts要求信息作爲一個新的頁面(而不是回發),因爲ViewState的結果是0.你可以閱讀更多[這裏](http://devshop.wordpress.com/ 2008/04/10 /如何對選擇 - 從 - 視圖狀態-SessionState的餅乾和緩存/) – Win