2010-01-06 81 views
1

列表我通過有一個模板:數據綁定與模板的下拉數據源

public class OwnedProvinces 
{ public Guid ProvinceID; 
    public string ProvinceName; 
} 

我創造了這個模板在這裏的列表:

List<OwnedProvinces> getinfo = (from upi in db.Utopia_Province_Data_Captured_Gens 
              where upi.Owner_User_ID == SQLStatementsCS.UserID() 
              where upi.Province_Name != string.Empty 
              select new OwnedProvinces { ProvinceName = upi.Province_Name, ProvinceID = upi.Province_ID}).ToList(); 

的問題,這個時候我嘗試將其綁定到下拉列表,像這樣:

ddlSelectProvince.DataTextField = "ProvinceName"; 
       ddlSelectProvince.DataValueField = "ProvinceID"; 
       ddlSelectProvince.DataSource = getinfo; 
       ddlSelectProvince.DataBind(); 

它拋出的錯誤:

DataBinding:'OwnedProvinces'不包含名稱爲'ProvinceName'的屬性。

基本上,它在列表中找不到屬性ProvinceName,但對我沒有任何意義。如果我做一個匿名查詢,它的工作原理,但是當我把它分配給類OwnedPRovinces,它拋出這個錯誤...

回答

2

嘗試更改類這樣

public class OwnedProvinces 
{ 
    public Guid ProvinceID { get; set; } 
    public string ProvinceName { get; set; } 
} 

的問題是,ProvinceID和ProvinceName是成員變量而不是屬性。

1

問題是你的宣言 -

public Guid ProvinceID;  
public string ProvinceName;  

的領域,而不是性能。你應該改變他們的定義,或者你應該嘗試實現IDataBindable接口,如下所示: http://www.primaryobjects.com/CMS/Article95.aspx

#region IDataBindable Members 

    public List<NameValueType> ToList() 
    { 
     List<NameValueType> resultList = new List<NameValueType>(); 

     using (DataContext context = new DataContext()) 
     { 
      List<Monster> itemList = context.Monsters.ToList(); 
      foreach (Monster item in itemList) 
      { 
       resultList.Add(new NameValueType(item.MonsterId.ToString(), item.Name)); 
      } 
     } 

     return resultList; 
    } 

    #endregion