为什么我的rdlc报告显示空白报告?

时间:2017-04-25 23:35:13

标签: asp.net asp.net-mvc webforms

我正在尝试在我的MVC项目中显示rdlc报告。我创建了2个addtional文件夹:   - 一个用于我的数据集   - 一个包含我的rdlc报告文件和我的网络表单aspx文件。以下是我对webform的Page_Load事件的代码

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                List<Models.goodcustomers> goodcustomers= null;
                using (var dc = new MaDbContext())
                {
                    goodcustomers= dc.goodcustomers.ToList();
                    ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/RPTReports/goodcustomers.rdlc");
                    ReportViewer1.LocalReport.DataSources.Clear();
                    ReportDataSource rdc = new ReportDataSource("MyDataset", goodcustomers);
                    ReportViewer1.LocalReport.DataSources.Add(rdc);
                    ReportViewer1.LocalReport.Refresh();
                }
            }
        }

网络代码

<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
        <rsweb:ReportViewer ID="ReportViewer1" runat="server" AsyncRendering="false" SizeToReportContent="true">

        </rsweb:ReportViewer>
    </div>
    </form>
</body>

这不起作用....当页面打开时,它会打印List<Models.goodcustomers>中所有项目的单元格,但这些单元格是空白的。 显然,当我调试时,我看到所有内容都是从数据库中检索出来的。所以我想这不是数据库连接问题

goodcustomers是我的数据库中的一个视图,我在我的MVC应用程序中创建了一个Model,我首先使用DbContext代码来查询数据库

知道发生了什么事吗?

ps:在我的MVC应用程序中显示Webform我只使用<a>标记,href指向aspx文件的位置

1 个答案:

答案 0 :(得分:1)

我在网站上找到了解决方案。这里应该做三件事:

  • 1:将goodcustomers转换为DataTable。然后将DataTable作为参数传递到ReportDataSource rdc = new ReportDataSource("MyDataset", goodcustomers_converted_to_DataTable);

  • 2: BIND 数据。在ReportViewer1.DataBind();实例化

  • 下方添加rdc
  • 3:第2步应该纠正这个问题。现在,您想要在MVC cshtml视图中替换webform,使用<iFrame>,src指向aspx webform。

按照这3个步骤解决了我的问题。