I think you need to bind the data to the report every time the Report viewer page postback, as following:
CrystalDecisions.CrystalReports.Engine.ReportDocument rpt;
protected void Page_Load(object sender, EventArgs e)
{
rpt = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
rpt.Load(Server.MapPath(GetFilePath()));
if (rptData is DataSet)
rpt.SetDataSource((DataSet)rptData);
else if (rptData is DataTable)
rpt.SetDataSource((DataTable)rptData);
else if (rptData is IEnumerable)
rpt.SetDataSource((IEnumerable)rptData);
CrystalReportViewer1.ReportSource = rpt;
CrystalReportViewer1.DataBind();
}
and close the report every time the page unload, as following:
protected void Page_UnLoad(object sender, EventArgs e)
{
if (rpt != null)
{
rpt.Close();
rpt.Dispose();
}
}