Раскрывающийся список главной страницы не сохраняет выбранный индекс
-
03-07-2019 - |
Вопрос
Хорошо, на моей главной странице есть раскрывающийся список, который контролирует размер, который влияет на многие вещи.Мне нужно получить доступ к раскрывающемуся индексу со страниц контента, поэтому я делаю это с помощью этого кода.
public partial class MasterPage : System.Web.UI.MasterPage
{
public DropDownList MySize { get { return _ddlSize; } }
}
Я использую Ajax, и когда размер меняется, меню на главной странице меняется нормально.
Но когда я нажимаю на обновленное меню, оно использует нулевой индекс раскрывающегося списка на моей странице контента, хотя визуально оно показывает выбранный мной размер.
int size = Convert.ToInt32(Master.MySize.SelectedItem.Text); //Uses 0 index :(
Я не хочу использовать сеанс, я просто не понимаю, почему это не работает в 100% случаев.У кого-нибудь есть идеи?
Решение
Я понял!
Я установил раскрывающийся список на общедоступный статический объект
public static DropDownList MySize;
Затем я просто устанавливаю его равным экземпляру страницы каждый раз, когда загружается главная страница.
protected void Page_Load(object sender, EventArgs e)
{
MySize = _ddlSize;
}
Вызов DropDownList немного отличается, поскольку это статический объект.
MasterPage.MySize.SelectedItem.Text
Но это работает на всех страницах контента, которые являются производными от главной страницы.
Другие советы
вы проверяли это решение в многопользовательском сценарии, поскольку значение статично, оно будет отражаться у разных пользователей
состояние просмотра, установленное на главной странице, должно сохранять значение раскрывающегося списка или попытаться использовать скрытые элементы управления для сохранения значения.