2017-04-25 195 views
1

我試圖在我的MVC項目中插入一個rdlc報告。我創建了2個附加文件夾: - 一個用於我的數據集 - 一個包含我的rdlc報告文件和我的webform aspx文件。下面是我對Page_Load事件的網頁表單的代碼爲什麼我的rdlc報告顯示空白報告?

protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       List<Models.goodcustomers> goodcustomers= null; 
       using (var dc = new MaDbContext()) 
       { 
        goodcustomers= dc.goodcustomers.ToList(); 
        ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/RPTReports/goodcustomers.rdlc"); 
        ReportViewer1.LocalReport.DataSources.Clear(); 
        ReportDataSource rdc = new ReportDataSource("MyDataset", goodcustomers); 
        ReportViewer1.LocalReport.DataSources.Add(rdc); 
        ReportViewer1.LocalReport.Refresh(); 
       } 
      } 
     } 

網絡表單代碼

<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
     <rsweb:ReportViewer ID="ReportViewer1" runat="server" AsyncRendering="false" SizeToReportContent="true"> 

     </rsweb:ReportViewer> 
    </div> 
    </form> 
</body> 

這不是工作....什麼情況是,頁面打開時,它打印的細胞對於List<Models.goodcustomers>中的所有項目,但這些單元格是空白的。 顯然,當我調試時,我看到一切都從數據庫中檢索。所以我想這是不是一個數據庫connectio問題

goodcustomers被來回,我已經在我的MVC應用程序創建的模型在我的數據庫視圖和我使用的DbContext代碼首先查詢數據庫

任何想法發生了什麼事?

PS:在我的MVC應用程序顯示的Webform我只是用一個<a>標記與HREF指向aspx文件

+0

聽起來好像沒有數據庫問題,這可能是渲染問題。通過在瀏覽器檢查器中查看HTML來檢查頁面源中是否存在這些數據,並在必要時發佈輸出HTML內容。 –

+0

@TetsuyaYamamoto在答案中查看我的解決方案 – Bloomberg58

回答

1

的位置,我發現一個網站上的解決方案。三件事應該在這裏完成:

  • 1:轉換goodcustomersDataTable。然後通過DataTable作爲參數ReportDataSource rdc = new ReportDataSource("MyDataset", goodcustomers_converted_to_DataTable);

  • 2:BIND的數據。添加ReportViewer1.DataBind();正確的下面rdc實例化

  • 3:第2步應該更正問題。現在你想在MVC cshtml視圖中取代webform,使用<iFrame>,src指向aspx webform。

以下3個步驟解決了我的問題。