我在 asp.net 应用程序中使用 vs 2010 的水晶报告,当我在事件上使用代码时Page_Load打印和导出报告工作正常,但是当我在按钮单击事件上使用相同的代码时,当我使用 CR Viewer 内置按钮将其发送到打印机或导出到硬盘驱动器时,它会返回空数据或空白报告。在调用代码之前,我还在页面加载和按钮单击事件中使用了IsPotBack选项。但仍然未能解决问题。
以下是我访问报告的源代码:
Dim CN As New SqlConnection("connectionstring...")
CN.Open()
Dim ds As New DS_App_Profile.V_App_ProfileDataTable()
Dim cmd As New SqlCommand("SELECT * from TblApplicants where Applicant_Id=@id", CN)
cmd.Parameters.Add(New OleDbParameter("id", OleDbType.VarChar)).Value = Me.ComboBox1.SelectedValue
Dim adp As New SqlDataAdapter(cmd)
adp.Fill(ds)
'object of Report RptApplicantsByID
Dim rep As New RptApplicantsByID()
rep.SetDataSource(DirectCast(ds, DataTable))
Me.CrystalReportViewer1.ReportSource = rep
Me.CrystalReportViewer1.DataBind()
我将相同的代码放在水晶报表查看器加载事件下,它开始工作。