Question

Ok, ma page principale a un menu déroulant qui contrôle la taille, ce qui affecte beaucoup de choses. Je dois accéder à l'index déroulant à partir des pages de contenu, donc je le fais à l'aide de ce code.

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

J'utilise Ajax et lorsque la taille change, le menu de la page principale change parfaitement.

Mais lorsque je clique sur le menu mis à jour, il utilise l'index zéro de la liste déroulante sur ma page de contenu même si, visuellement, il affiche la taille que j'ai sélectionnée.

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

Je ne veux pas utiliser Session, je ne comprends pas pourquoi cela ne fonctionne pas 100% du temps. Quelqu'un a des idées?

Était-ce utile?

La solution

Je l'ai compris!

Je définit le menu déroulant sur un objet statique public

public static DropDownList MySize;

Ensuite, je le mets égal à l'instance de la page à chaque chargement de la page maître.

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

L'appel de DropDownList est un peu différent puisqu'il s'agit d'un objet statique.

MasterPage.MySize.SelectedItem.Text

Mais cela fonctionne sur toutes les pages de contenu issues de la page principale.

Autres conseils

avez-vous vérifié cette solution dans un scénario multi-utilisateur, puisque la valeur est statique, elle sera répercutée sur différents utilisateurs

l'état d'affichage défini dans la page maître doit conserver la valeur des listes déroulantes ou essayer d'utiliser des contrôles cachés pour conserver la valeur

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top