【问题标题】:Report Viewer is not showed in ASP.NET WebForms报表查看器未显示在 ASP.NET WebForms 中
【发布时间】:2014-02-05 17:13:39
【问题描述】:

我正在使用 VS2012 在 ASP.NET C# 框架 4.0 中做一个项目。我需要创建一个 ReportViewer。我创建了报表 .rdlc,但是当我尝试在视图中显示它时,它显示为空白(报表查看器控件的工具栏出现并显示 1/1 页)。我在IE9、IE10、Mozilla和Chrome中测试过,结果都是一样的。

这是视图的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FitxaBolo.aspx.cs" Inherits="Activa_la_Cultura.Views.FitxaBolo" %>

<%@ 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">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>

    <form id="form1" runat="server">
        <asp:ScriptManager runat="server" ID="ScriptManager1"></asp:ScriptManager>
    <div>
        <rsweb:ReportViewer AsyncRendering="False"  id="ReportViewer1" runat="server" Height="1200px" Width="1200px"></rsweb:ReportViewer>
    </div>
    </form>
</body>
</html>

下面是代码:

    if (!Page.IsPostBack)
    {

        var compañia = (string)HttpContext.Current.Session["compañia"];
        var actividad = (string)HttpContext.Current.Session["actividad"];
        var municipio = (string)HttpContext.Current.Session["municipio"];
        var fecha = (string)HttpContext.Current.Session["fecha"];
        var lugar = (string)HttpContext.Current.Session["lugar"];
        var horario = (string)HttpContext.Current.Session["horario"];
        var llegada = (string)HttpContext.Current.Session["llegada"];
        var contacto = (string)HttpContext.Current.Session["contacto"];
        var observaciones = (string)HttpContext.Current.Session["observaciones"];

        var table = new DataSet1().Bolo;

        table.AddBoloRow(compañia, actividad, municipio, fecha, lugar, horario, llegada, contacto, observaciones);

        DataTable tb = (DataTable) table;
        var rds = new ReportDataSource(table.TableName,tb);
        ReportViewer1.LocalReport.DataSources.Clear();
        ReportViewer1.ProcessingMode = ProcessingMode.Local;
        ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/FBolo_Report.rdlc");
        ReportViewer1.LocalReport.DataSources.Add(rds);          
        ReportViewer1.LocalReport.Refresh();

    }

我检查所有变量都有值,并且报告的路径是否正确。啊,我正在通过一个名为 Dataset1 的 DataSet 填写报告,这个表有一个名为 Bolo 的表,其中包含字段 compañia、fecha 等...

我在 web.config 中添加了与 reportviewer 控件相关的所有行,具体是版本 11。

提前致谢。

【问题讨论】:

    标签: c# asp.net reportviewer


    【解决方案1】:

    试试这个:

    1. 编辑“C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js”(在 SSRS 服务器上)
    2. 附加以下脚本:

      function pageLoad() {    
      var element = document.getElementById("ctl31_ctl09");
      if (element) 
      {
          element.style.overflow = "visible"; 
      } }
      

    请注意:div 的名称并不总是ctl31_ctl09:在我的情况下是这样的(对于以前的服务包,它是ctl31_ctl10,而是)。

    如果此解决方案不起作用,请在浏览器中查看 HTML 以查看脚本是否正常工作,将 overflow:auto 属性更改为 overflow:visible;也许你必须在 stipt 中更改 div 名称。

    【讨论】:

    • 它没有运行,在我的情况下是 'ReportViewer1_ct109' 但在这个 div 内部,存在一个可能是问题所在:
    • 您能否分享一个公共 URL 以查看您的应用程序?
    • 目前它不在网络中,我正在使用 VS2012 创建它,目前我在应用程序内部进行调试,但是这个应用程序是供本地使用的,而不是在 www,我可以分享代码,或者如果您需要一些信息,我可以毫无问题地分享所有这些,谢谢。
    • 代码不够。。很多原因都会导致这个问题;尝试在网络上发布这个或其他类似的应用程序..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 2018-07-05
    相关资源
    最近更新 更多