1

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

如何解决?谢谢你

4

1 回答 1

0

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

于 2013-06-21T16:57:37.713 回答