2011-01-29 7 views
1

マスターページにMyDicという辞書をどのように宣言しますか?マスターページでセッション辞書を宣言する

私はMyDicに日付をキーとしてオブジェクトMyObjのリストを保持したいので、「MyDicから日付1/28/2011のリストを取得する」または「MyObjのこのリストを2011年1月28日MyDicで "

すべてのページで辞書にアクセスできるように、マスターページにその辞書を宣言したいと思います。

ありがとうございました。

答えて

2

リストを永続化する予定はありますか? マスターページで作成する代わりに、アプリケーション変数として作成することも、セッション変数としてユーザー固有のものを作成することもできます。どちらの場合も、あなたのようなものだろう。そして、あなたがどこかに格納します

Dictionary<DateTime, myObj> myList = new Dictionary<DateTime, myObj>(); 

を:

Session["MyList"] = myList; 

、あなたは再びそれにアクセスする必要があります。

Dictionary<DateTime, myObj> myList = (Dictionary<DateTime, myObj>)Session["MyList"]; 

あなたが行うことができますマスターページの宣言をinitまたはloadで実行するか、セッションやアプリケーションのglobal.asaxファイルで行うことをお勧めします。

+0

大丈夫、ありがとう、それはまさに私が探していたものです! – frenchie

+0

私は2,3時間前にあなたからこの非常に同じ質問に答えなかった.http://stackoverflow.com/questions/4838129/storing-dictionary-in-session/4838354#4838354? – BrokenGlass

+0

これも機能しますか?ディクショナリ> SessionFolders =新しいディクショナリ>();これはリストの辞書を作成しますか? – frenchie

0

この種の共有には、sessionまたはapplication変数を使用できます。

このようなシナリオは、作成されたものとほとんど同じです。

+0

これも機能しますか?ディクショナリ> SessionFolders =新しいディクショナリ>();これはリストの辞書を作成しますか? – frenchie

2

マスターページでパブリックプロパティを作成し、MasterTypeディレクティブを設定してコンテンツページでパブリックプロパティを作成できます。例えばあなたはMyMasterPageという名前のマスターページを持っているならば、ここでのコードサンプル

/// declare it in Master Page 
public Dictionary<DateTime, typeof(List<MyObj_Type>)> MyDic { 
     get; 
     set; 
} 

/// put the line just under Page directive on your content page where you want to access it 

<%@ MasterType virtualPath="~/MyMasterPage.master"%> 

/// and then on content page you can access by 
** Note: The intelisense may not work but don't worry just put the code in content page and it works.** 

Master.MyDic.Add(DateTime.Now, MyObj); 

はここですかAccessing Members on the Master Page

詳細こだわり一日を!

+0

ありがとうございます。 – adudley

関連する問題