在asp.net mvc中加载aspx页面,该页面用到了ReportViewer控件,但是访问该页面,控件不显示,一片空白,Firefox和IE浏览器下均如此。用浏览器打开页面源代码,发现错误信息,如下:
根据错误提示,查看web.config文件,相关配置都存在,所以实在不明白,请高手帮忙!
C#代码如下:
if (!IsPostBack) { if (Master != null) { //控件注册 var scriptManager = Master.FindControl("ReportSM") as ScriptManager; if (scriptManager != null) { scriptManager.RegisterAsyncPostBackControl(this.btn_submit); } //报表控件 var reportViewer = Master.FindControl("GloabalReportViewer") as ReportViewer; if (reportViewer != null) { //reportViewer.LocalReport.ReportPath = @"F:\桌面临时文件\报表系统\ReportSystem\ReportSystem\ReportModel\AccountStatSumQuery.rdlc"; reportViewer.LocalReport.ReportPath = "AccountStatSumQuery.rdlc"; DataTable dt = new DataTable();//必须将dataset里面的字段名称转化与DataSet.xsd里面的datatable的字段一样才能够进行绑定 dt.Columns.Add("a"); dt.Columns.Add("b"); dt.Columns.Add("c"); dt.Columns.Add("d"); dt.Columns.Add("e"); dt.Columns.Add("f"); DataRow dr = dt.NewRow(); dr["a"] = DateTime.Now; dr["b"] = "测试"; dr["c"] = "测试"; dr["d"] = 0; dr["e"] = 0; dr["f"] = 0; dt.Rows.Add(dr); ReportDataSource rds = new ReportDataSource("DataSet1", dt); reportViewer.LocalReport.DataSources.Clear(); reportViewer.LocalReport.DataSources.Add(rds); reportViewer.LocalReport.Refresh(); } } }
没有人回答吗
自己解决了
请问您是如何解决的,我的情况跟你一样,结果不能显示报表,一片空白。
@Jeacathy: 我是把它放到Iframe中加载的:
<iframe scrolling="hidden" frameborder="0" src="~/BaseReportViewer.aspx" style="width: 100%; height: 98%;" id="reportFrame"></iframe>
@CaptainTina: 谢谢,耐心回答!
@CaptainTina: 找了好久,在这里看到了。 之前就查在.cshtml文件里怎么使用Report Viewer没有,突然在这里看到正解,感动的哭了。
分布视图来实现是不是也可以,没有尝试过。
@Mchn: 具体是怎么解决的呢?
@CaptainTina: 具体是怎么解决的呢?我也遇到了同样的问题
你好,我也遇到同样的问题,报表在iframe里加载
然后在GetStationInsuranceTicketReport.aspx文件的page_Load方法里是这么写的
但是在视图里不显示报表,查看网页源代码时还报错
但是明明web.config文件里面已经加了的。
请问这是怎么回事?怎么解决?