2012-08-10 3 views
0

Je dispose d'un formulaire dans lequel deux listes déroulantes sont remplies à partir du même jeu de données, de sorte que leurs valeurs doivent être égales. J'ai l'événement OnSelectedIndexChanged dans le code et le AutoPostBack défini sur true pour la deuxième liste déroulante. Le comportement attendu est que lorsqu'un utilisateur sélectionne un élément dans la seconde liste déroulante, le premier doit changer pour ce qui a été sélectionné dans le second. Mon code dans l'événement ressemble à ceci:Liaison de deux listes déroulantes ne fonctionnant pas ensemble

if(!ddl1.SelectedValue.Equals(ddl2.SelectedValue) 
{ 
    ddl1.SelectedValue = ddl2.SelectedValue; 
} 

L'événement OnSelectedIndexChanged contient également le code qui lie de nouveau la grille de données au bas de la page en fonction de la sélection de la deuxième dropdownlist. Longue histoire courte, le DataGrid change, mais la première liste déroulante ne change pas sa valeur. Il ne semble pas qu'une publication devrait limiter ce qui changerait sur une page, alors qu'est-ce qui me manque ici?

Répondre

3
if(!ddl1.SelectedValue.Equals(ddl2.SelectedValue) 
{ 
    ddl1.ClearSelection(); 
    ddl1.Items.FindByValue(ddl2.SelectedValue).Selected = True 
} 
+0

Essayé celui-ci. Vous avez une erreur sur la page indiquant que plusieurs valeurs ne peuvent pas être sélectionnées en même temps. Essayé de désélectionner la valeur actuelle, il est revenu au comportement normal «ne pas changer sa valeur». –

+0

'ddl1.ClearSelection();' avant de faire la sélection – Rab

+0

Cela fonctionne, merci! Je suppose que j'ai oublié la méthode .ClearSelection(); J'y allais différemment. –

1

les opérations suivantes:

if (!ddl1.SelectedIndex == ddl2.SelectedIndex) 
{ 
ddl1.SelectedIndex == ddl2.SelectedIndex 
} 
Questions connexes