2012-04-18 32 views
2

目前我有一個母版頁和一個內容頁。我的母版頁由一個下拉列表組成,我需要從中選擇一個孩子。內容頁面根據所選的孩子加載。我應該如何儲存選擇的下拉值?從母版頁訪問控制權asp.net - 存儲值

我不認爲我可以使用會話,因爲我希望用戶能夠打開多個選項卡並同時觀看不同的兒童內容。如果我能在這種情況下使用會話,我不知道如何。

我不認爲我可以使用視圖狀態因爲雖然它解決了我的多個標籤問題,但母版頁和內容頁面具有不同的視圖狀態。

目前我在內容頁面上使用公開的static變量,並將其設置在母版頁中。但從我所聽到的靜態變量的值存儲在網站上的所有當前會話。

問題: 任何人都可以通過建議我應該使用哪種技術來幫助我嗎?

我也聽說過'應用'對象,但我認爲它沒有意義使用它。

當前工作代碼:

(內容頁面)

public static string Child 
    { 
     get 
     { 
      if (child == null) 
       return "-1"; 
      return child; 
     } 

     set 
     { 
      child = value; 
     } 
    } 

(母版頁)

protected void ddlChooseChild_IndexChanged(object sender, EventArgs e) 
     { 
      ContentPage.Child = ddlChooseChild.SelectedValue; 
     } 

回答

2

不同的控件之間共享數據的最佳方式是利用「項目」集合(這是HttpContext類的屬性)的。集合是一個Hashtable,可以從你的頁面和用戶控件,像這樣來訪問:

Context.Items["Child"] = ddlChooseChild.SelectedValue; 
+2

非常感謝我的朋友!完美解決了:) – test 2012-04-18 21:14:11

1

除非您使用PageID or something類似的限制會話,會話可在多個標籤。

看看這篇文章,Master Content Page interaction

+0

我知道會議是可在多個標籤,但我想在同一個會話變量有不同的選項卡不同的值。會話可能嗎? – test 2012-04-18 20:16:27

+0

@test,類似這樣的東西可能有助於http://stackoverflow.com/questions/2840615/asp-net-session-multiple-browser-tabs-different-sessions – Habib 2012-04-18 20:17:37

+1

@test您可以將對象存儲在會話變量中。你的對象可能包含任何你想要的信息,任何使用列表,數組等的選項卡。 – Jeremy 2012-04-18 20:21:48