Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Crystal报告仅显示第一页_Asp.net_Crystal Reports 2010 - Fatal编程技术网

Asp.net Crystal报告仅显示第一页

Asp.net Crystal报告仅显示第一页,asp.net,crystal-reports-2010,Asp.net,Crystal Reports 2010,我正在使用ASP.NET、SQL、Crystal Report。我已成功生成单页报告。但当报表大小超过一页时,Crystal report只显示第一页数据。当我单击下一步按钮时,它会显示“源空或未找到源”之类的消息 Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim rptDoc As New ReportDocument Dim ds As New S

我正在使用ASP.NET、SQL、Crystal Report。我已成功生成单页报告。但当报表大小超过一页时,Crystal report只显示第一页数据。当我单击下一步按钮时,它会显示“源空或未找到源”之类的消息

  Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim rptDoc As New ReportDocument
    Dim ds As New StudentDataSet
    Dim sqlCon As SqlConnection
    Dim dt As New DataTable
    dt.TableName = "Crystal Report Example"
    sqlCon = New SqlConnection(myCon)
    Dim da As New SqlDataAdapter("select * from tblStudent", sqlCon)
    da.Fill(dt)
    ds.Tables(0).Merge(dt)
    rptDoc.Load(Server.MapPath("~\Reports\StudentList.rpt"))
    rptDoc.SetDataSource(ds)
    CrystalReportViewer1.ReportSource = rptDoc

  End Sub

每次回发时都必须执行加载报告的代码
Page\u Init是放置此代码的正确位置(Page\u加载可能会导致一些错误)

尝试此更改(很抱歉出现VB错误,我使用C#):

嘿,建议在每个页面上关闭ReportDocument卸载;这样可以避免报告计数器的不受控制的增加,从而停止应用程序

protected void Page_Unload(object sender, EventArgs e)
{
    if (reportDocument != null)
        reportDocument.Close();
}

你看,对大多数人来说,这是不会发生的。你还没有发布任何细节,使你的案例与大多数人不同,这意味着你的问题中没有任何信息可以让人们用来回答。发布源代码或其他详细信息,以便这里的人可以参考。确切的消息框是“没有有效的报告源可用”。我还不能发布图片。当我点击crystal report的下一页按钮时,它会显示出来。谢谢,但现在它会在加载时显示报告,而无需点击按钮。另外,请解释ButtonClicked=true的含义。和你一样,我也是一名VB开发人员,只工作:我没有将ShowReport()放在Page_Init中,而是将它放在Page_Load中,使用If Page.IsPostBack然后Report()End如果我使用了一个名为ButtonClicked的布尔变量,该变量是在button click上设置的,为了避免这个问题,您还可以处理,在结束报告之后。
protected void Page_Unload(object sender, EventArgs e)
{
    if (reportDocument != null)
        reportDocument.Close();
}