我有一個數組列表,我添加了一個代碼列表。當我重定向到不同的頁面(aspx)時,我希望能夠從另一頁面訪問添加到數組列表中的這些代碼。從一個不同的.aspx頁面引用一個ArrayList對象它創建於
除了創建一個獨立的Class.cs文件之外,這是最簡單的方法。
問候
我有一個數組列表,我添加了一個代碼列表。當我重定向到不同的頁面(aspx)時,我希望能夠從另一頁面訪問添加到數組列表中的這些代碼。從一個不同的.aspx頁面引用一個ArrayList對象它創建於
除了創建一個獨立的Class.cs文件之外,這是最簡單的方法。
問候
您可以使用Session
變量:
ArrayList myArrayList = new ArrayList();
//add items to arraylist
Session["MyArrayList"] = myArrayList;
,然後簡單地圍繞切換它的第二頁上找回來:
ArrayList myArrayList = Session["MyArrayList"] as ArrayList;
//check to see if arraylist is null before using it
if (myArrayList != null)
{
//array list is not null, safe to use
}
即使單獨class
,你想要的(除非它是一個靜態的屬性)不能直接發生什麼。您的對象的每個請求正在重新創建。
解決方法是將ArrayList
存儲在Session
中。查看會話狀態這個MSDN鏈接的詳細信息:http://msdn.microsoft.com/en-us/library/ms178581(v=vs.100).aspx
這將有可能在不同的班,當他使用靜態變量。 – Destrictor
確實。我將編輯以反映這一點。 –
爲此,您需要使用Session,下面的代碼從我身邊推薦:
您從其中轉到另一個頁面的Page1的代碼:
System.Collections.ArrayList objArrayList = new System.Collections.ArrayList();
objArrayList.Add("DEMO1");
objArrayList.Add("DEMO2");
Session["ArrayList"] = objArrayList;
代碼頁-2上,你是從另一個頁面重定向:
System.Collections.ArrayList objArrayList1 = Session["ArrayList"] as System.Collections.ArrayList;
交回帖子回來了嗎? Gaurav Rajput如果前一頁有ArrayList的公共屬性?? –
@Abdul Majid:如果我正確理解你的觀點,那麼這種情況將會是這樣的:假設有兩個頁面Page1具有ArrayList類型和Page2的公共屬性。如果我們實現從頁面1到頁面2的跨頁面發佈,那麼這個公共ArrayList屬性也可以在頁面2上使用類似於PreviousPage._ArrayList的語法訪問。但爲此,我們將被限制使用跨頁面發佈。 –
我建議使用'... = Session [「MyArrayList」]作爲ArrayList;'。這樣,如果由於某種原因會話變量爲空,您不會拋出錯誤。用戶總是喜歡優雅的錯誤處理:)。 – Destrictor
好點,編輯以反映 – Sean
如果有人使用Array List的上一頁公共屬性怎麼辦? –