我在一个ASCX中有一个ReportViewer控件,如下所示:
<rsweb:ReportViewer
Height="100%"
Width="100%"
ID="ReportViewer1"
runat="server"
AsyncRendering="False"
Font-Names="Verdana"
Font-Size="8pt"
WaitMessageFont-Names="Verdana"
WaitMessageFont-Size="14pt"
OnDataBinding="ReportViewer1_DataBinding"
OnDisposed="ReportViewer1_Disposed"
OnInit="ReportViewer1_Init"
OnLoad="ReportViewer1_Load"
OnReportError="ReportViewer1_ReportError">
</rsweb:ReportViewer>并在包含ASCX的页面加载中:
ReportViewer1.LocalReport.DataSources.Clear();
int draftID = Convert.ToInt32(Session["DraftID"]);
MyTableAdapter adapter = new MyTableAdapter();
var table= adapter.GetData(draftID);
ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Reports/MyReport.rdlc");
var reportDataSource = new Microsoft.Reporting.WebForms.ReportDataSource("MyDataSource", (System.Data.DataTable)table);
ReportViewer1.LocalReport.DataSources.Add(reportDataSource);
ReportViewer1.LocalReport.Refresh();我相当确定我已经正确地设置了web配置。在compilation标记中:
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</buildProviders>在handlers标记中(为简洁起见,仅使用处理程序):
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />生成的适配器中的表被填充,乍一看,看起来是正确的。我在列出的事件上设置了断点,它将被初始化、加载,但永远不会绑定,这让我相信我遗漏了一些明显的东西。
有什么想法吗?
发布于 2013-08-12 02:02:22
经过多次实验,我最终从头开始。我想发生的事情是我使用report Builder 3来构建报告,然后尝试将RDL转换为RDLC。我已经看过了它们之间的差异,它们虽然很小,但显然很重要。通过简单地从原始RDL复制/粘贴到定义了正确数据源的新RDLC,我几乎能够挽救我的所有工作。感谢您的评论和帮助。
https://stackoverflow.com/questions/17648335
复制相似问题