如何从类的通用列表中设置列表框的数据源

时间:2012-06-10 17:13:02

标签: c# asp.net

如何将List绑定到Listbox的数据源?我想设置可见属性Name。

这是我的班级和名单:

 public class Users
 {
    public string Name { get; set; }
    public DateTime Data { get; set; }
    public int Id { get; set; }
    public Users()
    {
        Name = null;
        Data = DateTime.Now;
        Id = 0;
    }
    public Users(string N,DateTime dateTime, int id)
    {
        Name = N;
        Data = dateTime;
        Id = id;
    }
}

以下是我尝试绑定数据源的方法:

        ListBox1.DataSource = ((List<Users>) Application["Users_On"]);
        ListBox1.DataBind();

2 个答案:

答案 0 :(得分:3)

  ListBox1.DataSource = ((List<Users>) Application["Users_On"]);
  ListBox1.DataTextField = "Name";
  ListBox1.DataBind();

您可以使用ListBox类的DataTextField属性来显示对象的Name属性。

答案 1 :(得分:0)

Alex,不确定你是如何尝试生成和绑定值的,我会尝试简化,假设我有一个名为GenericLists的类,我将声明所有可重用的通用数据,让我们假设产品为例,我可以这样做:

private Dictionary<int, string> relatedProducts { set; get;}
public Dictionary<int, string> relatedProductsList { 
        get {return relatedProducts; } 
    }

public GenericLists()
{
        relatedProducts = new Dictionary<int, string>
            {
                    {0, "CTRL + Click to select multiples"},
                    {1, "A"},
                    {2, "B"},
                    {3, "C"},
                    {4, "D"},
             };
}

现在我想以任何形式将它绑定到列表框:

  GenericLists gList = new GenericLists();

            products.DataSource = gList.relatedProductsList;
            products.DataValueField = "Key";
            products.DataTextField = "Value";
            products.DataBind();

我希望这会给你一个想法。

祝你好运