2010-09-22 69 views
0

我可以給一個變量賦一個值(int),並且不會在任何範圍內丟失這個值嗎?
問題是我的值賦給在某些範圍的變量,但該變量返回到其他範圍內的默認值(零).. 例子:我可以爲每個範圍內的變量指定一個值嗎?

protected void Button_AddNewCourse_Click(object sender, EventArgs e) 
{ 
    ID = 10; 
} 

所以,當我試圖使用ID在其他功能中它回落到零

protected void AnotherFunction(object sender, EventArgs e) 
{ 
    // Variable ID here is zero 
} 
+3

這個問題是非常不清楚。一些示例代碼會有很大的幫助。 – 2010-09-22 10:42:30

+0

抱歉不清楚......我真的不知道該怎麼寫,因爲它太簡單了。 – fadi 2010-09-22 10:52:20

回答

3

變化看起來類似於此行(這可能是某處):

public int ID { get; set;} 

喜歡的東西

// keep the value of ID in this page only 
public int ID { get { return (int)ViewState["ID"]; } set { ViewState["ID"] = value; } } 

// keep the value of ID in every page 
public int ID { get { return (int)Session["ID"]; } set { Session["ID"] = value; } } 
+0

這就是我正在尋找,謝謝!...但我怎麼能做到這一點在c#(無asp.net)的桌面應用程序? – fadi 2010-09-22 11:09:46

+0

使用'public static int ID {get;組; }'然後像'SomeForm.ID'那樣調用變量。 – 2010-09-22 11:30:15

0

也許嘗試使用readonly變量?

4

有人猜測,也許你是ASP.NET的新手,並沒有弄清楚爲什麼頁面級別的變量不會在回發之間保持狀態。嘗試在Session狀態和Viewstate

或者一個概述閱讀了:ASP.NET State Management Overview

例如根據你的代碼示例,你可以使用一個會話條目存儲值:

protected void Button_AddNewCourse_Click(object sender, EventArgs e) 
{ 
    Session["ID"] = 10; 
} 

protected void AnotherFunction(object sender, EventArgs e) 
{ 
    int tempID = (int)Session["ID"]; 
} 

還有很多其他的事情可以做也 - 使用視圖狀態,例如。

相關問題