【问题标题】:Dropdown bind to generic list下拉绑定到通用列表
【发布时间】:2012-04-01 12:49:37
【问题描述】:

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

看起来很简单,但我不断收到错误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,“文本”是 Item.Name,但 ASP.NET 告诉我这些字段在 Item 中不存在。我可以在其他地方很好地访问 Item 的字段。

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

【问题讨论】:

  • 你有一个页面叫做 Item 吗?
  • 不,我有一个叫Item的类。

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


【解决方案1】:

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

【讨论】:

  • 啊哈!谢谢哥们,就是这样。 (你先回答)
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2013-03-27
    • 2021-02-25
    • 2011-02-10
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多