2009-11-16 9 views
1

J'ai une liste déroulante dont l'une des valeurs est autre. Je veux déplacer ces valeurs jusqu'au dernier. S'il vous plait, j'ai besoin de votre aide avec ceci. Le code que je utilise est la suivanteAjout d'une nouvelle valeur à la zone de liste déroulante

ddlAssetsCountryOthersone.DataSource = lstIMAssetsByCountryOthers; 
ddlAssetsCountryOthersone.DataTextField = "AssetDescription"; 
ddlAssetsCountryOthersone.DataValueField = "AssetDescription"; 
ddlAssetsCountryOthersone.DataBind(); 
ddlAssetsCountryOthersone.Items.Remove(
      ddlAssetsCountryOthersone.Items.FindByValue(
       Constants.PhilosophyAndEmphasis.Other.ToString())); 

Comment puis-je ajouter les autres revenir à la liste déroulante dans la dernière

+1

Je parie que si quelqu'un comprend ce que vous essayez d'accomplir! – TheVillageIdiot

Répondre

4

essayer ceci après votre DataBind:

ddlAssetsCountryOthersone.Items.Add(new ListItem("Others", "Others")); 

Soit dit en passant Si vous utilisez la méthode Insert, vous pouvez insérer l'élément souhaité dans la position souhaitée. Par exemple le code ci-dessous ajoute l'option Autre à la 4ème commande:

ddlAssetsCountryOthersone.Items.Insert(4, new ListItem("Others", "Others")); 
1

Si vous le dropdownlist est databound vous ne serez pas en mesure d'ajouter des articles à votre contrôle après l'appel DataBind(), et si vous les ajoutez avant sera effacé quand vous appelez DataBind(). Vous pouvez utiliser Insert ou Add après la liaison de données et vous pouvez spécifier l'index de l'élément que vous insérez. Insert permet d'insérer à l'emplacement spécifique, Add ajoutera au fond, comme dans votre cas:

//after databind 

//example with insert - (-1 as list is zero based) 
ddlMyList.Items.Insert(noOfItems-1, "Other"); 

OU

//add 
ddlMyList.Items.Add("Other"); 
0

Ou:

ListItem li = ddlAssetsCountryOthersone.FindByValue(Constants.PhilosophyAndEmphasis.Other.ToString())); 
ddlAssetsCountryOthersone.Remove(li); 
ddlAssetsCountryOthersone.Add(li); 

Cela devrait fonctionner, s'il vous plaît tester - et remplacer Ajouter avec Insérer selon la suggestion de JohnIdol ...

1

vous pouvez essayer comme

ListItem li = new ListItem("text", "value"); 
    yourDropdown.Items.Insert(yourDropdown.Items.Count, li); 

Si vous avez 5 éléments dans la liste déroulante, il retournera 5, depuis le début de l'index d'insertion de 0

0

Lorsque databinding, il est beaucoup plus facile d'ajouter/supprimer des éléments de la liste qui est databound que d'ajouter/supprimer des éléments après que la liaison de données a lieu.

Je créer un wrapper autour de lstIMAssetsByCountryOthers qui apporte les modifications nécessaires dans un nouveau IEnumberable et renvoie ce nouvel objet à databound.

Questions connexes