我正在使用ObjectDataSourse将数据绑定到GridView。我编写了以下函数来显示网格视图上的特定列。 程序不会抛出任何错误,但它不会在网格上显示任何内容。 有什么问题?
public IEnumerable<object> selectSpecificColumn()
{
IEnumerable<object> productTab = (from p in context.Products
select new{ p.ProductID, p.ProductName, p.OrderDate } );
return productTab;
}
答案 0 :(得分:0)
我更喜欢此场景中的poco class
public class Product
{
public Int32 ProductID {get; set;}
public String ProductName {get; set;}
//add more as needed
}
public List<KeyValuePair<string, string>> selectSpecificColumn()
{
IEnumerable<Product> productTab = from p in context.Products select new Product({ProductID =p.ProductID, ProductName = p.ProductName});
return productTab;
}
答案 1 :(得分:0)
我建议你有三种选择。你可以选择一个。
Product
类并隐藏您不想要的列。答案 2 :(得分:0)
绑定到已定义的类时,绑定会知道类必须绑定到哪些属性。您遇到的问题是您在LINQ代码中创建了匿名类型。然后,您将结果分配给对象列表IEnumerable<object>
。现在,绑定尝试绑定到此对象列表,并且不知道对象必须绑定到哪些属性。
我知道有时我们需要将LINQ封装在一个单独的函数中,特别是如果它将从多个位置调用。但是,使用当前框架规范,该函数不能返回匿名类型。如果您不想返回整个Products类,则必须创建一个新类。