ASP.NET MVC應用程序展示RDLC報表
學習ASP.NET MVC這樣久,在學習,練習與應用過程中,覺得很多知識與以前的ASP.NET多有區別,但是實現操作起來,細處又有許多相近的地方。
本篇跟大家一起學習RDLC報表,是在ASP.NET MVC應用程序中實現。在實現過程中,Insus.NET也將把一些常見的問題列舉與提供解決方法。
首先我們在數據庫准備數據,表,存儲過程等,數據應用以前練習的數據,寫一個存儲過程好了。
在ASP.NET MVC應用程序目錄結構下的Entities下,找到以前寫好的一個Entity,添加一個方法即可:
在應用程序的Reports下,開始創建RDLC報表:
選擇左邊的Table工具,在右邊的Design中,拖下一個表格。
放開mouse左鍵之后,會出現下面的對話框:
如果放開mouse左鍵之后,上面的對話沒有出現,用mouse點擊Data表格,如下:
也會出現菜單:
在表格中,選擇需要顯示的字段,並保存:
接下來,我們創建一個RdlcView.aspx網頁,將用來加左RDLC報表:
在RdlcView.aspx.cs,寫程序:
在控制器中,創建一個Action,其中,可以看到怎樣加載aspx網頁,更多相關練習,可以參考:
《念念不忘,ASP.NET MVC顯示WebForm網頁或UserControl控件》 http://www.cnblogs.com/insus/p/3641610.html
《ASP.NET MVC顯示UserControl控件(擴展篇)》http://www.cnblogs.com/insus/p/3642634.html
《ASP.NET MVC加載ASCX之后,並為之賦值》http://www.cnblogs.com/insus/p/3643254.html
《ASP.NET MVC加載用戶控件后並獲取其內控件值或賦值》http://www.cnblogs.com/insus/p/3644602.html
創建一個視圖:
我們瀏覽看看效果,但在網頁運行時,出現一個異常:
參照Heighlight的部分,添加至Web.config中:

<system.webServer> <handlers> <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> </handlers> </system.webServer>
再次運行,又出現另外一個異常:
解決方法,在References,檢查相關的Microsoft.ReportViewer.Common和Microsoft.ReportViewer.WebForms版本:
回過頭去看看剛才我們拖Reportviewer時,它的版本是什么:
一個是10版本,另一個是11版本,我們移除References的
使用NuGet安裝相匹配的版本:
再次瀏覽,成功了:
點擊下一頁,又發生一個異常:
錯誤的信息:
Line: 885
Error: Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 404
解決它,在ScriptManager語法中,清加一個屬性:EnablePartialRendering="false"
點擊打印:
還可以導出Word,PDF和Excel: