2013-05-16 2 views
1

CheckBoxList를 일반 목록 개체에 바인딩하는 방법.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 
    } 
} 

을하지만 런타임 예외를 던지고있다 :이 샘플 코드는 목적을 위해 작동합니다

데이터 바인딩 : 'Test.MyProduct를'이름 '제품명'와 속성을 포함하지 않습니다.

무엇이 누락 되었습니까? 나는 Google에 주제를 시도했지만 실패했습니다.

답변

5
이 속성에 필드를 변경

:

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

    ... 
} 
+0

어머 ........!. 고맙습니다 :) –