2011-01-29 3 views
1

Как вы объявляете словарь под названием MyDic на главной странице?Объявление словаря сеанса на главной странице

Я хочу, чтобы MyDic сохранял списки объектов MyObj с датой в качестве ключа, чтобы я мог написать что-то вроде этого: «получить список на дату 1/28/2011 из MyDic» или «поместить этот список MyObj из 1/28/2011 в MyDic ".

Я хотел бы объявить словарь на главной странице, чтобы получить доступ к нему на каждой странице.

Спасибо.

ответ

2

Как вы планируте сохранить список? Вместо того, чтобы создавать его на главной странице, вы можете создать его как переменную приложения или если он зависит от пользователя в качестве переменной сеанса. В любом случае вы могли бы сделать что-то вроде:

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

Тогда вы бы хранить его где-нибудь:

Session["MyList"] = myList; 

и когда вам нужно получить доступ к нему снова:

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

Вы могли бы сделать объявление на главной странице при инициализации или при загрузке, или даже лучше, я бы предложил сделать это в файле global.asax для сеанса или приложения

+0

ОК, большое спасибо, это именно то, что я искал !!! – frenchie

+0

Я не ответил на этот вопрос от вас несколько часов назад здесь..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

Смежные вопросы