【问题标题】:Binding CheckBoxList to a Generic List将 CheckBoxList 绑定到通用列表
【发布时间】:2013-05-16 11:49:10
【问题描述】:

如何将 CheckBoxList 绑定到通用列表对象。此示例代码应该可以达到以下目的:

protected void Page_Load(object sender, EventArgs e)
{
    // Works well with the datatable as a data source
    //DataTable _entityList = new DataTable();
    //_entityList.Columns.Add("Id", typeof(int));
    //_entityList.Columns.Add("ProductName", typeof(string));
    //_entityList.Rows.Add(new object[] { 1, "First" });
    //_entityList.Rows.Add(new object[] { 2, "Second" });

    // Doesn't work with the generic list as a data source
    List<MyProduct> _entityList = new List<MyProduct>();
    _entityList.Add(new MyProduct(1, "First"));
    _entityList.Add(new MyProduct(2, "Second"));

    cblProducts.DataSource = _entityList;
    cblProducts.DataTextField = "ProductName";
    cblProducts.DataValueField = "Id";
    cblProducts.DataBind();
}

public class MyProduct
{
    public int Id;
    public string ProductName;
    public bool selected;

    public MyProduct(int id, string desc, bool slctd)
    {
        this.Id = id;
        this.ProductName = desc;
        this.selected = slctd;
    }

    public MyProduct()
    {
        // TODO: Complete member initialization
    }
}

但是它抛出了一个运行时异常:

DataBinding:“Test.MyProduct”不包含名为“ProductName”的属性。

我错过了什么?我尝试用谷歌搜索该主题,但失败了。

【问题讨论】:

    标签: c# asp.net data-binding checkboxlist


    【解决方案1】:

    将您的字段更改为属性:

    public class MyProduct
    {
       public int Id { get; set; }
       public string ProductName { get; set; }
       public bool selected { get; set; }
    
       ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-19
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多