Раскрывающийся список главной страницы не сохраняет выбранный индекс

StackOverflow https://stackoverflow.com/questions/800065

Вопрос

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

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top