field具有bindingList包装器的gridview控制器

时间:2013-06-18 07:07:19

标签: c# asp.net

我尝试使用bindingList包装器来表示gridview控制器 我收到这样的错误信息。

在所选数据源上找不到名为“CustomerName”的字段或属性。

我的GridView代码是

GridViewSerials.AutoGenerateColumns = false; GridViewSerials.DataSourceID = null; GridViewSerials.DataSource = null;
CustomersController customersController = new CustomersController();
LicenseWrapperCollection licenseWrapperCollection = new Entities.LicenseWrapperCollection();
licenseWrapperCollection = customersController.GetAllCustomersAndSerials();

GridViewSerials.DataSource = licenseWrapperCollection; BoundField boundFiled      = GridViewSerials.Columns[2] as BoundField; boundFiled.DataField       = "CustomerName";    


GridViewSerials.DataKeyNames[0] = "CustomerId";

我的包装类是

public class LicenseWrapper
{
 #region Fields
 private License _license;
 private Customer _customer;
 #endregion

 #region Constructors

 internal LicenseWrapper(License license, Customer customer)
 {
     _license = license;
     _customer = customer;

     FillWithProperties();
 }
 #endregion

 #region Properties
 internal string customer_id { get; set; }
 internal string     CustomerId               { get; set; }    
 internal string     CustomerName             { get; set; }
 internal string     VatNumber                { get; set; }
 internal string     SerialNumber             { get; set; }
 internal DateTime?  InstallationDate         { get; set; }
 internal DateTime?  IssueDate                { get; set; }
 internal DateTime?  ExpirationDate           { get; set; }
 internal string     HardwareId               { get; set; }
 internal string     CurrentVersion           { get; set; }
 internal bool       LicenseHasBeenDownloaded { get; set; }
 #endregion

 #region Methods
 private void FillWithProperties()
 {
     customer_id                 = _customer.Id.ToString();
     CustomerId                  = _customer.Id.ToString();
     CustomerName                = string.Format("{0} {1}",_customer.FirstName, _customer.LastName);
     VatNumber                   = _customer.VatNumber;
     SerialNumber                = _license.SerialNumber;
     InstallationDate            = DateTime.Now; //must be fixed when fixed database _installation.InstallationDate;
     IssueDate                   = _license.IssueDate;
     ExpirationDate              = _license.ExpirationDate;
     HardwareId                  = _license.Installation != null ? _license.Installation.HardwareId : string.Empty;
     LicenseHasBeenDownloaded    = _license.Installation != null ? _license.Installation.LicenseHasBeenDownLoaded : false;
 }

 public override string ToString()
 {
     return string.Format("{0} {1} {2}", CustomerId, CustomerName, SerialNumber);
 }
 #endregion

}

我的错误信息是

> A field or property with the name 'CustomerName' was not found on the
> selected data source.

如何解决这个问题? 谢谢

1 个答案:

答案 0 :(得分:0)

答案和解决方案是:: 将LinqDataSource与dbml数据类一起使用。 所以我们有一个带LinqDataClasse =>的DataClasses; LinqDataSource =>网格视图 !! 它对我有用!