2014-02-05 6 views
0

Я делаю проект в ASP.NET C# framework 4.0 с VS2012. Мне нужно создать ReportViewer. Я создал отчет .rdlc, но когда я пытаюсь показать его в представлении, он выглядит пустым (отображается панель инструментов средства просмотра отчетов и отображается 1/1 страницы). Я тестировал его в IE9, IE10, Mozilla и Chrome, и результат тот же.Report Viewer не отображается в 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(); 

    } 

проверить, что все переменные имеют значение, и путь отчета верный. Ах, я заполняю отчет, который DataSet называется Dataset1, и у этого есть таблица с именем 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; возможно, вы должны изменить имя div в sctipt.

+0

Это не работает, в моем случае это «ReportViewer1_ct109», но внутри этого div существует один из них, возможно, это проблема:

\t \t \t \t \t
AlexAlvarez

+0

Можете ли вы поделиться общедоступным URL-адресом, чтобы увидеть ваше приложение? –

+0

На данный момент это не в Интернете, я создаю его с VS2012 и на данный момент я отлаживаю внутри приложения, однако это приложение предназначено для локального использования, а не в www, я могу поделиться кодом или вам нужна какая-то информация, я могу поделиться всем этим без проблем, спасибо. – AlexAlvarez

Смежные вопросы