2012-09-07 6 views
0
protected void ddlEnvironment_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (ddlEnvironment.SelectedIndex == 0) 
    { 
     ddlServers.Items.Add("item1"); 
    } 

    if (ddlEnvironment.SelectedIndex == 1) 
    { 
     ddlServers.Items.Add("item2"); 
    } 

    if (ddlEnvironment.Text == "Production") 
    { 
    } 
} 

Ce qui précède ne fonctionne pas. Lorsque je fais une sélection sur ddlEnvironment et que c'est le premier élément de la liste (index 0), l'autre liste déroulante ne fait pas d'upading avec "item1". Pourquoi?Comment remplir une liste déroulante basée sur une sélection d'une autre liste déroulante?

+0

Lorsque vous déboguer le code, ce qui est la valeur de ddlEnvironment.SelectedIndex? –

+0

Etes-vous vérifier avec firebug ou autre, si le rappel est au serveur? Voir Réseau. –

+0

Essayez ceci: http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx - Trousse d'outils de contrôle AJAX amusante – bugnuker

Répondre

2

Il peut y avoir différentes raisons par défaut dans la liste déroulante ne pas faire de publication. !

  • Vérifiez si vous avez AutoPostBack="true"
  • Vous liez le ddlEnvironment dans le bloc Page.IsPostBack de sorte qu'il conserve son état lors de la publication

    if(!Page.IsPostBack) 
    { 
        ddlEnvironment.AuutoPostBack = true; 
        ddlEnvironment.DataSource = datasource; 
        ddlEnvironment.DataBind(); 
    } 
    
+0

c'était ça. ça a réglé le problème. Merci! :) ps. 9 minutes jusqu'à ce que je peux l'accepter – Testifier

+0

Vous êtes les bienvenus. – Adil

0

Je suppose que vous avez AutoPostBack=true - droit ?

Si vous initialisez ddlEnvironment dans votre gestionnaire d'événements Page_Load(), il est réinitialisé lors de la publication.

Vous devez faire quelque chose comme ceci:

If (!Page.IsPostback) 
{ 
    // initialize ddlEnvironment here 
} 
Questions connexes