2013-05-17 213 views
4

我遇到了標準ASP.NET ReportViewer控件(v11,SQL 2012,VS 2012)的問題。這在以前的工作中,連接到遠程SSRS服務器,但在網站的開發過程中,某些事情已經破裂,我正在努力隔離原因。ReportViewer控件返回空白頁面

如果我創建一個簡單的表格:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ReportTest.aspx.cs" Inherits="ReportTest" %> 

<%@ 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"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     This is a test! 

     <rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote"> 
      <ServerReport ReportPath="/Reports/MyTestReport" ReportServerUrl="http://sqlserver/reportserver" />   
     </rsweb:ReportViewer> 
    </div> 
    </form> 
</body> 
</html> 

..並運行此,什麼顯示在瀏覽器中。即使是This is a test!文本,也不會顯示服務器端出現「崩潰」的情況。支持這個理論,使用Fiddler我可以看到沒有嘗試聯繫報表服務器。

我已經打開了Visual Studio中的所有異常陷印,但沒有任何捕獲,並且沒有什麼顯而易見的,我可以在輸出中看到。 ReportViewer控件在設計模式下正確顯示,並且我重新安裝了ReportViewer可再發行組件。

+0

當您在「http:// sqlserver/reports」的SSRS管理器中查看「MyTestReport」時,是否顯示數據? –

+0

破解它,請參閱下面的答案。但要回答你的問題:是的,它確實:) – KenD

回答

3

我已經找到了問題,或者說兩個問題:

  • 我需要有一個ScriptManager在頁面上。雖然原始項目(實際上,我的原始製作頁面)中的測試頁面沒有投訴丟失的ScriptManager,但使用上述測試網頁創建一個全新的項目引發了有關ScriptManager需求的錯誤。我一定是誤刪了原來的ScriptManager。爲了解決這個問題,我所需要的補充是:

    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
    
  • 其次 - 而這是在生產代碼本身 - 我有參數

    ShowParameterPrompts="True"

    使用此選項定義頁面不會加載,給出與上面相同的錯誤。但是,刪除該選項允許頁面正常加載。

2

我想我有這樣的事情。當我將代碼添加到Page_Init而不是Page_Load時,我已經修復了它。

嘗試添加這一行:

rptv.ServerReport.Refresh(); 
1

this.ReportViewer1.AsyncRendering = FALSE;

這使我的頁面工作。

0

如果您要發送可接受空值的參數,則必須在ReportViever accept null中定義此參數。他沒有給我顯示空白報告而沒有給出任何錯誤。