数据源大体可以分为两种,一种是通过使用强类型的dataset,通过数据源配置向导,可以很容易的实现。还有一种是使用业务对象,对于业务对象实际是一些支持ienumerable的类,比如泛型集合。如果一个类定义了公共的方法,并且该方法的返回类型是实现了ienumerable接口的类型,那么visual studio会自动识别这样的类,可以将类所在的命名空间作为数据源,类的公共方法返回的集合作为可用数据集。
namespace reportdemo
{
public class person
{
public string username { get; set; }
public string password { get; set; }
public int age { get; set; }
}
public class test
{
public static listgetperson()
{
listlist = new list ()
{
new person{username="zhang san",password="123",age=10},
new person{username="li si",password="qwe",age=20}
};
return list;
}
}
}
protected void page_load(object sender, eventargs e)
{
if (!page.ispostback)
{
reportdatasource bb = new reportdatasource("dataset1", test.getperson());
reportviewer2.localreport.datasources.clear();
reportviewer2.localreport.datasources.add(bb);
}
}