2009-04-28 3 views
0

Хорошо, у моей главной страницы есть раскрывающийся список, который контролирует размер, который влияет на многие вещи. Мне нужно получить доступ к выпадающему индексу из страниц контента, чтобы я делал это с помощью этого кода.Masterpage Раскрывающийся список не поддерживается Выбранный указатель

public partial class MasterPage : System.Web.UI.MasterPage 
{ 
public DropDownList MySize { get { return _ddlSize; } } 
} 

Я использую Ajax, и когда размер изменяет меню на Masterpage, изменения просто прекрасны.

Но когда я нажимаю на обновленное меню, он использует нулевой индекс выпадающего списка на моей странице содержимого даже через визуально показывает размер, который я выбрал.

int size = Convert.ToInt32(Master.MySize.SelectedItem.Text); //Uses 0 index :(

Я не хочу использовать сеанс, я просто не понимаю, почему это не работает в течение 100% времени. У кого-нибудь есть идеи?

+0

это работает каждый раз, когда вы отключили ajax? –

ответ

0

Я понял!

я установил выпадающее меню для публичного статического объекта

public static DropDownList MySize; 

Тогда я просто установить его равным экземпляр страницы каждый раз, когда Masterpage загружен.

protected void Page_Load(object sender, EventArgs e) 
{ 
    MySize = _ddlSize; 
} 

Вызов DropDownList немного отличается, поскольку это статический объект.

MasterPage.MySize.SelectedItem.Text 

Но он работает на всех страницах контента, которые производятся на главной странице.

+0

Создание статичности работает только в том случае, если вы хотите, чтобы он в основном жил вечно, для всех ваших пользователей. Статические объекты живут в рабочем процессе iis, в котором работает ваше приложение, что означает, что оно доступно во всем мире, даже во время сеансов пользователя, до тех пор, пока рабочий процесс не будет убит или перезагружен (большую часть времени перезапуск приложения будет устранен, но не всегда). –

+0

Я тестировал этот метод для нескольких пользователей, и он отлично работает. Это порождает хороший вопрос в том, как я могу сделать глобально статические переменные, которые живут на нескольких сеансах, потому что это не способ сделать это. – 2009-04-29 21:17:20

0

вы проверили это решение в сценарии многопользовательского, так как значение является статическим это будет отражено в различных пользователях

состояния отображения устанавливается в главной странице должна сохранить выпадающее значение списков или попытаться используйте скрытые элементы управления, чтобы удерживать значение

+0

Вы поднимаете очень хороший момент. Я закрыл браузер и снова открыл его, и значения не сохраняются. Я думаю, что это работает, но теперь я немного параноик. Спасибо что подметил это. – 2009-04-29 02:16:03

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