在MVC项目中使用ReportViewer

创建WebForm,向Webform中添加ReportViewer控件,通过CodeBehind设置报表参数并填充数据,测试通过后在MVC的View中iFrame新创建的WebForm

在MVC项目中使用使用DbContext作为ReportViewer的数据源

在MVC项目内部新建Report.rdlc后,发现不能选择Object(DbContext)作为数据源。网上找到的一个解决办法是:在同解决方案中新建另一个非Web的项目,如WinForm项目。在WinForm项目添加对Web项目及其他相关项目的引用,之后用向导创建rdlc,创建时会看到选择数据源的选项中有Object选项了,"下一步"后就可以选择相应的对象作为数据源,如MyProject.Models.Product,创建好数据源,记下设定的数据集(DataSet)的名称(如dsProduct)。保存。将在此生成的rdlc文件复制到主Web项目中进行报表设计

以下是生成并填充报表数据的代码,注意代码中用到的数据源名称必须与之前创建RDLC的时候所记下的DataSet名称一致,即下面例程中的dsProduct:

                string path = Path.Combine(Server.MapPath(@"\Rdlc"), "MyReport.rdlc");
ReportViewer1.ProcessingMode = ProcessingMode.Local;
ReportViewer1.LocalReport.ReportPath = path;
MyProductBusiness business = new MyProductBusiness();
List<Product> records = business.Search().Take().ToList();
ReportDataSource rptDataSource = new ReportDataSource("dsMyProduct", records);
ReportViewer1.LocalReport.DataSources.Add(rptDataSource);

ReportViewer控件版本为V11.x.x.x,但是项目添加引用"Microsoft.ReportViewer.Webform.dll"时只有V10.x.x.x和V9.x.x.x显示在列表中

用Nuget,找到MicosoftReportViewerWebForms_v11并添加,Nuget显示版本为1.0.1,但是这只是此Nuget包的版本,实际ReportViewer的版本是11.0.0.0

PM> Install-Package MicosoftReportViewerWebForms_v11

使ReporViewer在Webform中的高度和宽度为100%

<rsweb:ReportViewer ID="ReportViewer1" runat="server" Height="100%" Width="100%" AsyncRendering="False" SizeToReportContent="True" ......>
</rsweb:ReportViewer>

最新文章

  1. PHP超时处理全面总结
  2. Xamarin.Forms bug? System.ObjectDisposedException: Cannot access a disposed object
  3. (转载)更好的重启nginx 服务器
  4. decorator(修饰器)的业务应用
  5. 程序员50题(JS版本)(一)
  6. Elixir 简介
  7. Log4Net 记录错误日志。
  8. pycharm 常用快捷键操作
  9. 对ES6的一次小梳理
  10. Android RecycleView 自定义Item的使用
  11. 6.1 C++ string类型变量的定义以及输入与输出
  12. 解决jsfl 弹出警告
  13. 数据库类型空间效率探索(三)-char
  14. windows下更改鼠标滚轮方向
  15. javascript 实现页面加载完的操作
  16. Mybatis学习—入门
  17. [BZOJ4537][HNOI2016]最小公倍数(分块+并查集)
  18. Python基础入门-os模块
  19. TCP三次挥手四次握手
  20. 【CF1027D】Mouse Hunt(拓扑排序,环)

热门文章

  1. 工作流数据库表设计-ASP.NET
  2. 在MVC视图的代码块中,直接输出文本,有几种方式?
  3. python学习笔记 - 初识socket
  4. 组合数学 - 母函数的变形 --- hdu 1171:Big Event in HDU
  5. 组合数学 + STL --- 利用STL生成全排列
  6. 从P6 EPPM 8 R3 到P6 EPPM 16 R1 有哪些改变?
  7. 面向对象的JavaScript(3):私有成员和公开成员
  8. 推荐使用C++ 11
  9. 创建WCF服务自我寄宿
  10. [moka同学笔记]yii2.0数据库操作以及分页