ReportViewer控件不显示报告
我已经到处寻找解决这个问题的方法,但还没找到一个对我有用的方法。 我在托管服务器上设置了报告服务器(2008 R2)。 我使用报表生成器从头创建了一个报表,在使用其URL登录到报表服务器时对其进行了测试,并成功生成了报表。
当我尝试从MVC应用程序查看报告时,只有报告工具栏呈现(显示导出,打印,页面和视图报告按钮)。 它显示它是“正在加载”,在它完成之后它只是一个空白报告,但是它在工具栏上显示了正确的参数,如果我在代码中更改了参数的名称,则返回一个错误,指出参数没有存在; 所以我知道地址user / pw信息是正确的。
页面的代码和标记
Back to Reports /
protected void Page_Load(object sender, EventArgs e) { try { if (!IsPostBack) { if (ViewData["Start"] != null) { var param = new List (); var start = new ReportParameter("start", ViewData["Start"].ToString()); var end = new ReportParameter("end", ViewData["End"].ToString()); var region = new ReportParameter("region", "2"); param.Add(start); param.Add(end); param.Add(region); ReportViewer1.Width = 1100; ReportViewer1.Height = 900; ReportViewer1.ShowCredentialPrompts = false; ReportViewer1.ShowDocumentMapButton = false; ReportViewer1.ShowExportControls = true; ReportViewer1.ShowFindControls = false; ReportViewer1.ShowPrintButton = true; ReportViewer1.ShowPromptAreaButton = false; ReportViewer1.ShowRefreshButton = false; ReportViewer1.ShowToolBar = true; ReportViewer1.ShowZoomControl = false; ReportViewer1.SizeToReportContent = true; ReportViewer1.ProcessingMode = ProcessingMode.Remote; IReportServerCredentials irsc = new CustomReportCredentials(ConfigurationManager.AppSettings["ReportServerUser"], ConfigurationManager.AppSettings["ReportServerPassword"], "SERVERNAME"); ReportViewer1.ServerReport.ReportServerCredentials = irsc; ReportViewer1.ServerReport.ReportServerUrl = new Uri(string.Format("https://{0}/ReportServer", ConfigurationManager.AppSettings["ReportServerUrl"])); ReportViewer1.ServerReport.ReportPath = string.Format("/{0}", ViewData["Report"]); ReportViewer1.ServerReport.SetParameters(param); ReportViewer1.ShowReportBody = true; ReportViewer1.ServerReport.Refresh(); } } } catch (Exception ex) { Response.Write(ex.Message); } }
网络配置
我终于开始工作了。 对于那些和我有同样问题的人来说,这就是我为了让它发挥作用所做的。
在page指令中,设置EnableEventValidation="false"
并为报表控件设置AsyncRendering="false"
。
我所做的是确保所有web.config页面都使用引用ReportViewer 10.奇怪的是,屏幕仍然显示空白页面。 单击“刷新”,它出现了。 这可能是由于会议。
我从不添加这些解决方案,但我觉得是时候“回馈”而不仅仅是“采取”。
当我的页面在页面加载时具有以下内容时,报表查看器将显示参数,但不显示实际报表。 请注意我有AysncRendering = false。 所以这段代码不起作用(VB)。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim UserName = HttpContext.Current.User.Identity.Name Dim paramList As New Generic.List(Of ReportParameter) paramList.Add(New ReportParameter("UserID", UserName, False)) ReportViewer1.ServerReport.SetParameters(paramList) End Sub
但是,当我添加以下行时,没有其他更改,整个报告已加载。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim UserName = HttpContext.Current.User.Identity.Name If IsPostBack = False Then ReportViewer1.Width = 900 ReportViewer1.Height = 900 Dim paramList As New Generic.List(Of ReportParameter) paramList.Add(New ReportParameter("UserID", UserName, False)) ReportViewer1.ServerReport.SetParameters(paramList) ReportViewer1.ShowReportBody = True ReportViewer1.ServerReport.Refresh() End If
请注意,我没有像之前的post那样进行任何页面声明更改。
https://msdn.microsoft.com/en-us/library/ms252090.aspx
1.明确地将ReportViewer控件上的高度设置为实际值而不是百分比。
2.将以下样式设置添加到标记:html,body,form {height:100%}。 通过强制HTML,正文和表单标记达到最大高度,ReportViewer控件中使用的框架也将增长到最大高度,使其在页面上可见。
3.从页面中删除xhtml文档类型。 (重要)上述就是C#学习教程:ReportViewer控件不显示报告分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1014825.html