【问题标题】:ReportViewer won't bindReportViewer 不会绑定
【发布时间】:2013-07-15 06:56:58
【问题描述】:

我在 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();

我有理由确定我已经正确设置了网络配置。在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" />

生成的适配器中的表格被填满,乍一看,看起来是正确的。我在列出的事件上设置断点,它将被初始化、加载,但从不绑定,这让我相信我错过了一些明显的东西。

有什么想法吗?

【问题讨论】:

  • reportDataSource 的来源呢?调试时检查了吗?
  • 您的代码一目了然。验证您是否将 http 处理程序添加到正确的部分。这取决于您的 IIS 版本和 asp.net 管道模式。
  • @Nithesh - reportDataSource 显示正确。数据表中的数据可以很好地进入数据源。 @nunespascal - 我将它添加到 configuration/system.webserver/handlers - 似乎是最合乎逻辑的地方。

标签: asp.net reportviewer


【解决方案1】:

经过多次试验,我最终从头开始。我认为发生的事情是我使用 Report Builder 3 来构建报告,然后尝试将 RDL 转换为 RDLC。我已经查看了差异,它们很小但显然很重要。通过简单地将原始 RDL 复制/粘贴到定义了正确数据源的新 RDLC,我几乎可以挽救我的所有工作。感谢 cmets 和帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多