Csharp/C#教程:ReportViewer控件不显示报告分享


ReportViewer控件不显示报告

我已经到处寻找解决这个问题的方法,但还没找到一个对我有用的方法。 我在托管服务器上设置了报告服务器(2008 R2)。 我使用报表生成器从头创建了一个报表,在使用其URL登录到报表服务器时对其进行了测试,并成功生成了报表。

当我尝试从MVC应用程序查看报告时,只有报告工具栏呈现(显示导出,打印,页面和视图报告按钮)。 它显示它是“正在加载”,在它完成之后它只是一个空白报告,但是它在工具栏上显示了正确的参数,如果我在代码中更改了参数的名称,则返回一个错误,指出参数没有存在; 所以我知道地址user / pw信息是正确的。

页面的代码和标记

        

Back to Reports /

Start Date: <input type="text" name="start" class="datepicker" value="" /> End Date: <input type="text" name="end" class="datepicker" value="" /> <input type="hidden" name="id" value="" />
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

(0)
上一篇 2021年12月31日
下一篇 2021年12月31日

精彩推荐