在mvc视图中实现rdlc报表展示(补充)

时间:2021-02-02 03:30:10

上篇: 在mvc视图中实现rdlc报表展示

在上一遍中,由于不知道如何在aspx.cs后台中实例化abp的IxxxAppService.cs的接口,我采取的方式是在视图页中把查询出的数据存储到aspx的某个隐藏域中,然后在aspx.cs的后台事件中去获取,然后再赋值给ReportViewer控件。

这种方式其实很影响性能,会多次对查询的数据做页面存储和转换,而且当数据量较大时会出现页面无法加载数据的问题。

后来才知道abp框架实际上提供了一个全局方法专门去获取当前的ioc容器集合,通过传入接口泛型去找到实例对象。代码如下:

var obj = Abp.Dependency.IocManager.Instance.Resolve<IxxxAppService>();

其中,IxxxAppService为自己的api接口类。

本项目中我的代码参考如下:

var _dbServer = Abp.Dependency.IocManager.Instance.Resolve<IDbServerAppService>();
dt = _dbServer.ExecuteGetTable(dbSerId, sqlStr);