2009-02-10 9 views
2

J'ai un menu déroulant et sur la publication, je ne peux pas obtenir la valeur sélectionnée.ASP.NET Dropdown - Fonctionne lorsque MasterPage EnableViewState = true

  • MasterPage EnableViewState = False
  • contenu page ViewState = true
  • DROPDOWNLIST contrôle ViewState = true

Ne fonctionne pas

Si je passe le Masterpage EnableViewState = true, il fonctionne, cependant le reste du site n'a vraiment pas besoin d'un état de visualisation, donc idéalement, je veux qu'il soit activé.

La liaison de données se produit dans le gestionnaire Page_Init et il existe une clause Page.IsPostBack.

Des idées?

Répondre

6

Il n'y a qu'un seul Viewstate par page (mis à part l'état de contrôle qui est stocké dans viewstate). Si vous l'éteignez à la page principale, elle est désactivée sur la page.

+0

mise donc dans la page elle-même ne le contourner? – TimLeung

+0

Le paramètre de page d'accueil est prioritaire ici et efficacement Viewstate est désactivé –

3

Chris est 100% correct. Si vous voulez seulement maintenir l'état sur ce contrôle, vous pouvez sous-classer DropDown et ajouter un état de contrôle. Cela fonctionne indépendamment des paramètres ViewState.

Here is a Phil Haack tutorial on control state.

+0

+1 pour le tutoriel Haacked –

1

Je pense que vous devriez être en mesure d'obtenir la valeur sélectionnée de la dropdownlist de la collection Form (sans avoir à activer ViewState), par exemple:

if (IsPostBack) 
    string selectedValue = Request.Form["Id_of_the_DropDownList"]; 
Questions connexes