2010-07-08 3 views
1

Cela m'a rendu fou toute la journée. J'ai vu ce problème surgir ici quelques fois, essentiellement, j'ai une liste déroulante qui remplit un formulaire ci-dessous quand il a changé - des choses de base. Lors du chargement de la première page, tout va bien, mais lorsque la liste déroulante est modifiée, elle est entièrement vide après la publication et l'événement SelectedIndexChanged ne se déclenche jamais. Je crois que tout indique un problème de vue. Voici le code ...net DropDownList est effacé après la publication

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="EditUser.ascx.cs" Inherits="Controls_EditUser" %> 
<asp:DropDownList OnSelectedIndexChanged="SelectedIndexChanged" AutoPostBack="true" ID="UsersList" EnableViewState="true" 
    runat="server" DataTextField="EXTRANET_USER_EMAIL" DataValueField="EXTRANET_USER_ID"> 
</asp:DropDownList> 

et pageload ...

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     IEnumerable<ExtranetUser> users = Users(); 
     UsersList.DataSource = users; 
     UsersList.Items.Insert(0, new ListItem("-- Select User --", "0")); 
     UsersList.DataBind(); 
    } 
} 

Toute aide sur ce serait extrêmement apprécié! Je suis sûr que c'est quelque chose de simple ...

Répondre

3

Edit: Complètement nouvelle réponse ...

Ajoutez-vous le contrôle en cas Page_Init? Tout plus tard et ViewState aura déjà été analysé et appliqué aux contrôles sur la page, avant que le contrôle ajouté dynamiquement ait été ajouté. Voir ceci: http://msdn.microsoft.com/en-us/library/ms178472.aspx

+0

Merci pour la réponse rapide :) J'ai peur que le même problème se produise avec ou sans la collection d'articles. En outre, la liste se construit correctement sur le chargement de la première page. – Chris

+0

Vous pouvez combiner le 2. Définissez la propriété AppendDataBoundItems = "true" sur le DDL. Cependant, étant donné que le PO dit qu'il est correct sur le chargement initial de la page et qu'il ne voit qu'un comportement inattendu après la publication, je ne pense pas que ce soit le problème. –

+0

Je viens de remarquer qu'il s'agit d'un contrôle utilisateur. Est-ce qu'il est ajouté dynamiquement à la page? –

0

Essayez d'ajouter EnableViewState sur les directives Page aussi

<%@ Control Language="C#" EnableViewState="True" AutoEventWireup="true" CodeFile="EditUser.ascx.cs" Inherits="Controls_EditUser" %> 

En outre, l'ordre des éléments sont importants postback sur pour préserver le ViewState. pourrait-il être, qu'après la publication, certains contrôles sont-ils manquants?

+0

Malheureusement, j'ai essayé d'activer viewstate tout le long de la chaîne et il n'a rien fait. – Chris

Questions connexes