ReportViewer 数据源更新

来源:互联网 发布:centos修改root密码 编辑:程序博客网 时间:2024/06/05 05:14

微软的ReportViewer过去的项目使用它来实现多张票据打印,查看发现:

RefreshReport函数MSDN中的备注

调用 RefreshReport 方法会导致重新加载和呈现报表中的所有数据

以前没有注意到他的实际效果。假如我想更改数据里面的值需要重新

 

...

 reportViewer1.LocalReport.DataSources.Clear();

reportViewer1.LocalReport.DataSources.Add());

...

 

现在经过测试确认不需要:

执行RefreshReport的时候Report重新读取数据源。只需更改原先数据源的数据即可。

 

例如:

...

private List<Product> m_products = new List<Product>();

private void Form1_Load(object sender, EventArgs e)
{
m_products.Add(new Product("Pen", 25));
m_products.Add(new Product("Pencil", 30));
m_products.Add(new Product("Notebook", 15));

reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("Product", m_products));

this.reportViewer1.RefreshReport();
}

private void button1_Click(object sender, EventArgs e)
{
Product model = m_products[1];
model.Price = 34222;

  this.reportViewer1.RefreshReport();  //执行后报表的数据就改变了。
}

 

...

原创粉丝点击