Pergunta

OK, minha página -masma tem um suspensão que controla o tamanho que afeta muitas coisas. Preciso acessar o índice suspenso das páginas de conteúdo para fazer isso usando este código.

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

Estou usando o Ajax e quando o tamanho altera o menu na página master muda muito bem.

Mas quando clico no menu atualizado, ele usa o índice zero da lista suspensa na minha página de conteúdo, mesmo com visualmente, ele mostra o tamanho que selecionei.

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

Não quero usar a sessão, simplesmente não entendo por que isso não funciona 100% do tempo. Alguém tem alguma ideia?

Foi útil?

Solução

Eu descobri!

Eu defino o menu suspenso para um objeto estático público

public static DropDownList MySize;

Em seguida, basta defini -lo igual à instância da página sempre que a página master carregada.

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

Chamar a lista suspensa é um pouco diferente, pois é um objeto estático.

MasterPage.MySize.SelectedItem.Text

Mas funciona em todas as páginas de conteúdo que derivam da página master.

Outras dicas

Você verificou esta solução em um cenário de vários usuários, pois o valor é estático, ela será refletida em diferentes usuários

O estado de exibição definido na página mestre deve manter o valor suspenso ou tentar usar controles ocultos para sustentar o valor

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top