【问题标题】:ReportViewer 10, ASPX, Paging IssuesReportViewer 10、ASPX、分页问题
【发布时间】:2013-05-03 17:17:34
【问题描述】:

我有一个小型网络项目,该项目的唯一目的是为更大的应用程序容纳和生成报告。

我有一个页面“ReportManager.aspx”,上面只有一个 ReportViewer (10.0) 控件。

<div style="width:auto;">
    <form id="Form1" runat="server" style="width:100%; height: 100%;">
        <asp:ScriptManager ID="ScriptManager1" runat="server">          
        </asp:ScriptManager>
        <rsweb:reportviewer id="ReportViewer1" runat="server" Width="100%" Height="100%"     AsyncRendering="false"  SizeToReportContent="true"></rsweb:reportviewer>
    </form>        
</div>

<script runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
        if (IsPostBack)
        return;

        ReportViewer1.ProcessingMode = ProcessingMode.Remote;
        ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://localhost/ReportServer");
        ReportViewer1.ServerReport.ReportPath = "/SSRSReport";
        ReportParameter param = new ReportParameter("effective_date", "4/22/2013");
        ReportViewer1.ServerReport.SetParameters(param);
        ReportViewer1.PageCountMode = PageCountMode.Actual;
    }
</script>

在运行时更改报表查看器控件上的页面会产生错误。

错误出现在: Reserved.ReportViewerWebControl.axd?OpType=Resource&Version=10.0.30319.1&Name=ViewerScript

在第 3559 行,看起来像这样:

    // Remove the current STYLE element, if it already exists.
    if (oldStyleElement != null)
        headElement.removeChild(oldStyleElement);

headElement.removeChild(oldStyleElement); 是错误显示 htmlfile: Invalid argument 的行。休息 |继续 |忽略。

单击“继续”会导致报表在没有任何样式的情况下呈现。点击“忽略”可以正确呈现报表。

我正在运行 Windows 2012 Server、Visual Studio 2012 Premium 和 IE8。 Win 7 机器上也会出现同样的错误。

有什么建议或已知的修复吗?

【问题讨论】:

  • 我在 MVC 应用程序中使用嵌入式 ReportViewer 时遇到了同样的问题(在控件的 v11 中),这让我很难受。
  • 我在 .Net 4 应用程序中使用 VS 2012 和 ReportViewer 版本 11;问题仍然存在。我可以打印所有页面,但只能在浏览器中查看第 1 页。有其他人遇到过这个问题吗?

标签: asp.net reporting-services ssrs-2008


【解决方案1】:

我的报告也在 MVC 应用程序中。我实际上在不久前解决了这个问题。我想我通过删除以下几行来修复它:

ReportViewer1.ProcessingMode = ProcessingMode.Remote;
ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://localhost/ReportServer");
ReportViewer1.ServerReport.ReportPath = "/SSRSReport";

ReportViewer1.PageCountMode = PageCountMode.Actual;

我更改了代码以将所有数据存储在标签中。

我做的另一件事是添加 ReportViewer1.ServerReport.Refresh() 低于 ReportViewer1.ServerReport.SetParameters(param)。

在我进行这些更改后,一切都开始工作了。

【讨论】:

  • 您是否偶然使用了 IE8?我只能在 MVC 应用程序中使用 IE8 重现这一点。不幸的是,这是该应用程序的目标浏览器。 >:
【解决方案2】:

虽然可疑会有所帮助,但我尝试按照您的建议尽可能多地删除代码隐藏,但这并没有为我解决问题。

但是,这是我们应用中的解决方案:

承载 ReportViewer 控件的 .aspx 页面缺少其 &lt;body&gt; 标记。

就是这样!!

反高潮,我知道,但显然这会导致 IE8(至少)在

headElement.removeChild(oldStyleElement);

我很好奇在您的应用中执行相同操作是否会导致错误重现。

我通过谷歌找到的资源很少处理这个问题,我不敢相信其中没有提到这个:-x

【讨论】:

  • 大声笑我一开始以为你是对的,然后我意识到我使用了扰流板降价。你必须悬停才能看到它。
  • 我们在 IE9 中遇到了同样的错误,但它失败的页面确实有一个 body 标签。想知道其他人是否找到了不同的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 2020-12-17
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多