下拉列表绑定到通用列表

时间:2012-03-15 22:57:39

标签: asp.net generics data-binding drop-down-menu

我想将我的下拉列表绑定到通用列表。

看起来很简单,但我不断收到错误DataBinding: 'InternalPurchasingForms.Types.Item' does not contain a property with the name 'itemID'.

这是我的课程代码:

namespace InternalPurchasingForms.Types
{
  public class Item
  {
    public int itemID;
    public String name;
    //...
  }
}

这是我的下拉数据绑定代码:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        { 
        List<Item> allItems = DataAccessLayer.getAllItems();
        uxDropDownItemList.DataSource = allItems;
        uxDropDownItemList.DataValueField = "itemID";
        uxDropDownItemList.DataTextField = "name";
        uxDropDownItemList.DataBind();
        }
    }

我想告诉下拉列每行的“值”是Item.itemID,而“text”是Item.Name,但是ASP.NET告诉我这些字段在Item中不存在。我可以在其他地方访问Item的字段。

我该如何正确地做到这一点?

2 个答案:

答案 0 :(得分:3)

确保在Item类中使用getter和setter作为itemID和name。

答案 1 :(得分:1)

我以这种方式设置属性,并且在使用下拉列表绑定时工作正常。

 private int _itemid= 0;
 private string _name = "";
 public string name
 {
   set { _name = value; }
   get { return _name ; }
 }
 public int itemID
 {
   set { _itemid= value; }
   get { return _itemid; }
 }