Domanda

Ok, la mia pagina principale ha un menu a discesa che controlla le dimensioni che influiscono su molte cose. Devo accedere all'indice a discesa dalle pagine di contenuti, quindi lo faccio utilizzando questo codice.

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

Sto usando Ajax e quando le dimensioni cambiano il menu sulla Pagina Master cambia bene.

Ma quando faccio clic sul menu aggiornato, utilizza l'indice zero dell'elenco a discesa sulla mia pagina dei contenuti, anche attraverso visivamente mostra la dimensione che ho selezionato.

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

Non voglio usare Session, non capisco perché non funziona al 100% delle volte. Qualcuno ha qualche idea?

È stato utile?

Soluzione

L'ho capito!

Ho impostato il menu a discesa su un oggetto statico pubblico

public static DropDownList MySize;

Quindi l'ho appena impostato uguale all'istanza di pagina ogni volta che la pagina principale è stata caricata.

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

La chiamata a DropDownList è leggermente diversa poiché è un oggetto statico.

MasterPage.MySize.SelectedItem.Text

Ma funziona su tutte le pagine di contenuti che derivano dalla pagina principale.

Altri suggerimenti

hai verificato questa soluzione in uno scenario multiutente, poiché il valore è statico si rifletterà su diversi utenti

lo stato di visualizzazione impostato nella pagina principale deve conservare il valore degli elenchi a discesa o provare a utilizzare i controlli nascosti per contenere il valore

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top