ASP.NET WebForms中未显示报表查看器

时间:2014-02-05 09:00:26

标签: c# asp.net reportviewer

我正在使用VS2012在ASP.NET C#framework 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的表有比喻,fecha等字段......

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

  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"; 
    } }
    
  3. 请注意:div的名称并不总是ctl31_ctl09:在我的情况下,它是(以前的服务包是ctl31_ctl10,而不是)。

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