2011-01-31 102 views
0

當我重新加載頁面時,如何確保我在頂部聲明的變量不會被重置。 IE我有一個計數器,最初設置爲0,如果我使用回發控制它重置該變量我怎麼去不在C#中發生這種情況?頁面重新加載 - 保留變量

回答

5

您是否在尋找特定於客戶端或服務器的值?

如果您希望特定於客戶端的某些內容使用cookie或會話值。

如果您正在尋找特定於服務器的某些內容,請使用靜態類,應用程序或緩存值。

0

將要保存的值存入Cookie中。

1

使用ASP.Net會話或Cookie。或者您可以將其值存儲在隱藏字段中。您可以在article中閱讀有關這些選項和選項的信息。

0

如果您使用回發而不是鏈接,則應將數據保存到視圖狀態。

VB

Public Property MyValue() As String 
      Get 
       Dim _mv As Object = ViewState("MyValue") 
       If Not _mv Is Nothing Then 
        Return _mv.ToString 
       End If 
       Return String.Empty 
      End Get 
      Set(ByVal value As String) 
       ViewState("MyValue") = value 
      End Set 
End Property 

C#

public string MyValue { 
    get { 
     object _mv = ViewState("MyValue"); 
     if ((_mv != null)) { 
      return _mv.ToString(); 
     } 
     return string.Empty; 
    } 
    set { ViewState("MyValue") = value; } 
} 

ViewState是沿着回傳保存,如果你留在當前頁面。例如,如果你是在page.aspx並使用點擊每次<asp:button>,您可以使用視圖狀態作爲一個地方保存你的一些數據,它看起來像這樣

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE4Mzg3MjEyMzdkZNNlI9zvMeIGeUB4MZbJA2gmsHns9IsmAy/c4dQMybXD" /> 

的網頁源代碼視圖狀態自動生成

+0

該問題被標記爲C#。但無論如何感謝您的解決方案! – gor 2011-01-31 20:53:43

0

該數據不會保留在HTTP請求上;您需要將其保存在Cookie中,隱藏控件或將其手動存儲在視圖狀態中。

如果您手動執行頁計數器,請考慮將其存儲在會話狀態中。