我尝试使用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.
如何解决这个问题? 谢谢
答案 0 :(得分:0)
答案和解决方案是:: 将LinqDataSource与dbml数据类一起使用。 所以我们有一个带LinqDataClasse =>的DataClasses; LinqDataSource =>网格视图 !! 它对我有用!