Evg*_*vin 3 asp.net reportviewer reporting-services
我在表单上使用ReportViewer控件:
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<rsweb:ReportViewer ID="ReportViewer1" runat="server">
</rsweb:ReportViewer>
</form>
Run Code Online (Sandbox Code Playgroud)
在页面代码文件中初始化的报告文件路径:
protected void Page_Init(object sender, EventArgs e)
{
ReportViewer1.LocalReport.ReportPath = "Reports/Source/Untitled.rdlc";
}
Run Code Online (Sandbox Code Playgroud)
当报告呈现时,我得到了下一个错误:
A data source instance has not been supplied for the data source 'DataSet1'.
Run Code Online (Sandbox Code Playgroud)
连接正常(我测试过),当我尝试在MS SQL Server报表生成器中运行报表时 - 它也正常工作(生成报表).
在您的rdlc报告中,您在设计报告时添加了一个名为"DataSet1"的数据集.您需要传递此数据集将用于呈现报告的数据.
这是通过localreport数据源集合完成的.请注意,它是复数意味着您的报表中可以包含多个数据集.
ReportViewer1.LocalReport.DataSources.Clear();
ReportDataSource rds = new ReportDataSource();
rds.Name = "DataSet1"; //this is the name of the DataSet on your report rdlc
rds.Value = datatable; //this contains the data and columns referenced in the dataset
ReportViewer1.LocalReport.DataSources.Add(rds);
Run Code Online (Sandbox Code Playgroud)
如果您查看下面的标记,您将看到reportviewer期望的内容
<rsweb:ReportViewer ID="ReportViewer1" runat="server">
<LocalReport ReportPath="Report1.rdlc">
<DataSources>
<rsweb:ReportDataSource Name="DataSet1" />
</DataSources>
</LocalReport>
</rsweb:ReportViewer>
Run Code Online (Sandbox Code Playgroud)
更新
对于第二部分,数据源DataSet11已经被声明,只需在传递数据的代码隐藏中引用它Value
ReportViewer1.LocalReport.DataSources["DataSet1"].Value = myData;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8773 次 |
| 最近记录: |