字段一个gridview控制器与一个绑定列表包装



我尝试用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.

如何解决这个问题?谢谢你

答案和解决方案是::在dbml数据类中使用LinqDataSource。所以我们有一个数据类linqdataclass => LinqDataSource => GridView !!这对我有用!

最新更新