2009-12-29 42 views
1

結合泛型列表到下拉

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; 
    } 

,並在下拉列表我想ABC:史密斯填充。

ddlList.DataTextField = "Name"; 

只填充名稱。

我想填充名稱和代碼。 我該怎麼做。請幫忙。

回答

3

看來DataTextField只能用來顯示單個屬性。您可以在利斯塔創建一個新的屬性如下所示:

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

或完全消除DataTextField和使用

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

或創建一個新的類,它從利斯塔繼承和做的事情之一我上面提到的正確顯示。

+0

下面的下拉列表我有一個asp:標籤,其中我只想從下拉列表中填充選定的名稱而不是代碼。 我該怎麼做?我可以捕獲選定的值,但在這裏我只需要名稱而不是代碼。謝謝 – user240266 2009-12-29 16:02:08

+0

使用我的任一解決方案,您仍然可以將DataValueField設置爲Name。 – 2009-12-29 16:33:09

1

將NameAndCode字符串屬性添加到返回Code +「:」+ Name的ListA類。然後確定您的DataTextField值。