ControlCollection cc = this.ReportViewer1.Parent.Controls;
//get index of previous ReportViewer so we can swap it out.
int prevIndex = cc.IndexOf(this.ReportViewer1);
// Remove previous ReportViewer
cc.Remove(this.ReportViewer1);
//add new instance of ReportViewer.
ReportViewer1 = new Microsoft.Reporting.WebForms.ReportViewer();
// Reset report properties.
ReportViewer1.Height = Unit.Parse("100%");
ReportViewer1.Width = Unit.Parse("100%");
ReportViewer1.CssClass = "table";
//Add the new ReportViewer to the previous ReportViewer location.
cc.AddAt(prevIndex, ReportViewer1);
// Clear out any previous datasources.
this.ReportViewer1.LocalReport.DataSources.Clear();
//Set report mode for local processing.
ReportViewer1.ProcessingMode = ProcessingMode.Local;