【问题标题】:ReportViewer control returns blank pageReportViewer 控件返回空白页
【发布时间】:2013-05-17 10:48:46
【问题描述】:

我在使用标准 ASP.NET ReportViewer 控件(v11、SQL 2012、VS 2012)时遇到问题。这以前在某个时候可以正常工作,连接到远程 SSRS 服务器,但在网站开发过程中出现了问题,我正在努力找出原因。

如果我创建一个简单的表单:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ReportTest.aspx.cs" Inherits="ReportTest" %>

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        This is a test!

        <rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote">
            <ServerReport ReportPath="/Reports/MyTestReport" ReportServerUrl="http://sqlserver/reportserver" />           
        </rsweb:ReportViewer>
    </div>
    </form>
</body>
</html>

.. 运行它,nothing 会显示在浏览器上。甚至没有 This is a test! 文本,这表明服务器端出现了“崩溃”。支持这个理论,使用 Fiddler 我可以看到没有尝试联系报表服务器。

我在 Visual Studio 中打开了所有异常捕获,但没有捕获任何内容,并且我在输出中看不到任何明显的东西。 ReportViewer 控件在设计模式下正确显示,并且我重新安装了 ReportViewer 可再发行组件。

【问题讨论】:

  • 当您在“sqlserver/reports”的 SSRS 管理器中查看“MyTestReport”时 - 它会显示数据吗?
  • 破解了,见下面我的回答。但是要回答您的问题:是的,确实如此:)

标签: asp.net reporting-services reportviewer


【解决方案1】:

我找到了问题,或者说是两个问题:

  • 我需要在页面上有一个 ScriptManager。使用上述测试网页创建一个全新的项目会引发有关 ScriptManager 要求的错误,尽管原始项目中的测试页面(实际上,我的原始生产页面)并没有抱怨缺少 ScriptManager。我一定是误删了原来的 ScriptManager。要修复它,我需要添加的只是:

    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    
  • 其次 - 这是在生产代码本身 - 我有参数

    ShowParameterPrompts="True"

    定义此选项后,页面将无法加载,并出现与上述相同的错误。但是,删除该选项允许页面正常加载。

【讨论】:

    【解决方案2】:

    我想我有类似的东西。当我将后面的代码添加到 Page_Init 而不是 Page_Load 时,我已经修复了它。

    尝试添加这一行:

    rptv.ServerReport.Refresh();
    

    【讨论】:

      【解决方案3】:

      this.ReportViewer1.AsyncRendering = false;

      这使我的页面正常工作。

      【讨论】:

        【解决方案4】:

        如果你发送一个可以接受空值的参数,你必须在 ReportViever 中定义这个接受空值。他没有定义我显示空白报告而不给出任何错误。

        【讨论】:

          猜你喜欢
          • 2023-03-09
          • 2017-11-20
          • 2013-07-06
          • 1970-01-01
          • 2021-08-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多