使用reportviewer将参数传递给rdlc

时间:2014-07-26 08:17:47

标签: c# entity-framework reportviewer rdlc dynamic-rdlc-generation

我有一个visual studio 2013 Web应用程序,它与实体框架一起使用,我想使用RDLC报告显示一个简单的表格数据报告。

我创建了一个单独的网页并添加了一个reportviewer控件。我还创建了一个RDLC文件,并从C#函数添加了数据源,该函数返回List个自定义对象。这样,它可以从报表设计器进行配置,但是当页面在浏览器中加载时,会显示错误A data source instance has not been supplied for the data source 'DataSet1'

报告设计 enter image description here

HTML标记

    <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt"
        WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt">
        <LocalReport ReportPath="Alumni\Reports\Report1.rdlc"></LocalReport>
    </rsweb:ReportViewer>

对于上面的实现,我得到了不提供数据源的错误,但是如Yuliam Chandra建议的那样,我添加了以下代码,现在报告正常工作。

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", Business.ReportManager.GetMemberDetails(1)));
        }
    }

请帮我解决这个问题。我只需要使用RDLC显示一个简单的报告,数据源是一个公共静态函数,其参数返回一个对象列表。

1 个答案:

答案 0 :(得分:3)

您是否在页面加载中设置了数据源?

YourReportViewer.LocalReport.DataSources.Add(new ReportDataSource("testDataSet", list));