我使用 Crystal 报表创建了一个报表。我正在使用 Visual Studio 2010。当我尝试转到另一个页面时会出现问题。当我尝试导航到第 2 页或最后一页时,屏幕上会出现错误“没有可用的有效报告源”。有人知道我需要做什么吗?感谢您的宝贵时间
最佳答案
将报告存储在 session 中,然后在页面回发时提供 session 中的报告源
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
try
{
CrystalReportViewer1.ReportSource = (ReportDocument)Session["Report"];
CrystalReportViewer1.RefreshReport();
CrystalReportViewer1.DataBind();
}
catch (Exception ex)
{
// throw;
}
}
}
protected void CrystalReportViewer1_PreRender(object sender, EventArgs e)
{
}
protected void btnPrint_Click(object sender, EventArgs e)
{
ReportDocument rptDoc = new ReportDocument();
rptDoc.Load(Server.MapPath("Reports\\BalanceReportNew\\BalanceReport.rpt"));
rptDoc.SetDataSource(ReportData());
Session["Report"] = rptDoc;
CrystalReportViewer1.ReportSource = rptDoc;
CrystalReportViewer1.RefreshReport();
CrystalReportViewer1.DataBind();
}
public DataTable ReportData()
{
string ClassName = ddlClass.SelectedValue;
string Division = ddlDivison.SelectedValue;
string Subject = ddlSubjects.SelectedValue;
DataTable ReportData = objRpt.getReportData(ClassName, Division, Subject);
return ReportData;
}
关于asp.net - 没有可用的有效报告源- Crystal 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7398610/