2009-12-29 3 views
1

JeDropDown

public class ListA 
{ 

    private string code; 
    private string name; 

    public string Code { get { return code; } set { code = value; } } 
    public string Name { get { return name; } set { name = value; } } 

} 

List<ListA> lst = new List<ListA>(); 

    public List<ListA> getList() 
    { 
     lst.Add(new ListA { Code = "ABC", Name = "Smith" }); 
     lst.Add(new ListA { Code = "XYZ", Name = "Abbey" }); 

     return lst; 
    } 

et dans le dropdownlist Je veux ABC: Smith peuplée.

ddlList.DataTextField = "Name"; 

ne remplit que le nom.

Je veux remplir à la fois le nom et le code. Comment puis-je faire cela. S'il vous plaît aider.

Répondre

3

Il semble que DataTextField ne peut être utilisé que pour afficher une seule propriété. Vous pouvez créer une nouvelle propriété sur ListA comme ce qui suit:

public string Display { get { return Code + ":" + Name; } } 

ou supprimer le DataTextField complètement et utiliser

public override string ToString() { return Code + ":" + Name; } 

ou créer une nouvelle classe qui hérite de ListA et fait l'une des choses que je mentionné ci-dessus pour un affichage approprié.

+0

sous la liste déroulante J'ai une étiquette asp: dans laquelle je veux remplir uniquement le nom sélectionné dans la liste déroulante et non le code. Comment est-ce que je fais cela? Je peux capturer la valeur sélectionnée mais ici je veux juste le nom et non le code. Merci – user240266

+0

Avec l'une de mes solutions, vous pouvez toujours définir DataValueField à Name. –

1

Ajoutez une propriété de chaîne NameAndCode à la classe ListA qui renvoie le code + ":" + Name. Puis faites cela votre valeur DataTextField.