ReportViewer控件返回空白页面

时间:2013-05-17 10:48:46

标签: asp.net reporting-services reportviewer

我遇到标准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可再发行组件。

4 个答案:

答案 0 :(得分:3)

我发现了这个问题,或者更确切地说是两个问题:

  • 我需要在页面上有一个ScriptManager。使用上面的测试网页创建一个全新的项目会引发有关ScriptManager要求的错误,尽管原始项目中的测试页(实际上是我的原始生产页面)没有抱怨丢失的ScriptManager。我一定是错误地删除了原来的ScriptManager。为了解决这个问题,我需要添加的是:

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

    ShowParameterPrompts="True"

    定义此选项后,页面将无法加载,从而产生与上述相同的错误。但是,删除该选项可以使页面正常加载。

答案 1 :(得分:2)

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

尝试添加此行:

rptv.ServerReport.Refresh();

答案 2 :(得分:2)

this.ReportViewer1.AsyncRendering = false;

这使我的网页工作了。

答案 3 :(得分:0)

如果要发送可以接受空值的参数,则必须在ReportViever中接受null。他没有给我显示空白报告而没有给出任何错误。

相关问题