2014-02-05 36 views
0

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

下面是这个视图的代码:

<%@ 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.

在此先感谢。

回答

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"; 
    } } 
    

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

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

+0

它没有运行,在我的情况下是'ReportViewer1_ct109',但在这个div里面,存在一个可能是这个问题:

\t \t \t \t \t
AlexAlvarez

+0

你可以分享一个公共URL来查看你的应用程序吗? –

+0

目前它不在网络中,我用VS2012创建它,目前我在应用程序内进行调试,但是这个应用程序是为本地使用,而不是在www,我可以共享代码,或者如果你需要一些信息,我可以分享所有这些没有问题,谢谢。 – AlexAlvarez

相关问题