Pregunta

Ok, mi página maestra tiene un menú desplegable que controla el tamaño que afecta muchas cosas. Necesito acceder al índice desplegable desde las páginas de contenido, así que lo hago usando este código.

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

Estoy usando Ajax y cuando el tamaño cambia, el menú en la página maestra cambia bien.

Pero cuando hago clic en el menú actualizado, utiliza el índice cero de la lista desplegable en mi página de contenido, incluso aunque visualmente muestra el tamaño que seleccioné.

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

No quiero usar Session, simplemente no entiendo por qué esto no funciona el 100% del tiempo. ¿Alguien tiene alguna idea?

¿Fue útil?

Solución

¡Lo descubrí!

Puse el menú desplegable en un objeto estático público

public static DropDownList MySize;

Luego, solo lo hago igual a la instancia de la página cada vez que se carga la página maestra.

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

Llamar a DropDownList es un poco diferente, ya que es un objeto estático.

MasterPage.MySize.SelectedItem.Text

Pero funciona en todas las páginas de contenido que se derivan de la página maestra.

Otros consejos

comprobó esta solución en un escenario multiusuario, ya que el valor es estático, se reflejará en diferentes usuarios

el estado de vista establecido en la página maestra debe conservar el valor de las listas desplegables o intentar utilizar controles ocultos para mantener el valor

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top