asp.net – ReportViewer阻止其他功能,直到报告查看器的加载完成
这是ReportViewer控件:
<form id="reportForm" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="360000"> </asp:ScriptManager> <div> <rsweb:ReportViewer ID="mainReportViewer" runat="server" Width="100%" Height="100%" SizeToReportContent="True" > </rsweb:ReportViewer> </div> </form> 这是页面背后的代码: protected void Page_Load(object sender,EventArgs e) { if (Session["UserInfo"] == null) { Response.Redirect("~/account/login",true); } string ReportPath = ""; try { if (mainReportViewer.Page.IsPostBack) return; mainReportViewer.ProcessingMode = ProcessingMode.Remote; mainReportViewer.ServerReport.ReportServerUrl = new Uri( @"" + ConfigurationManager.AppSettings["ReportServer"].ToString() ); ReportPath = Convert.ToString(ConfigurationManager.AppSettings["ReportPath"]); if (!string.IsNullOrEmpty(ReportPath)) { if (ReportPath.Substring(0,1) == "/") { ReportPath = ReportPath.Substring(1,ReportPath.Length - 1); } if (ReportPath.Substring(ReportPath.Length - 1,1) != "/") { ReportPath = ReportPath + '/'; } } else { ReportPath = ""; } ReportPath = ReportPath + Request["Report"].ToString().Split(".".ToCharArray())[0].ToString(); mainReportViewer.ServerReport.ReportPath = @"/" + ReportPath; ReportParameterCollection parmCol = new ReportParameterCollection(); string sFrom = ""; string sTo = ""; string dateRange = Request["dateRange"].ToString(); string[] obj = dateRange.Split("-".ToCharArray()); if (obj.Length > 1) { sFrom = obj[0].ToString(); sTo = obj[1].ToString(); } else sFrom = obj[0].ToString(); else if (Request["Report"].ToString().ToUpper() == "SOURCEWISEREPORT_AR.RDL") { string[] frommonthyear = sFrom.Split(','); string[] tomonthyear = sTo.Split(','); parmCol.Add(new ReportParameter("FromYear",frommonthyear[1])); parmCol.Add(new ReportParameter("FromMonth",frommonthyear[0])); parmCol.Add(new ReportParameter("ToYear",tomonthyear[1])); parmCol.Add(new ReportParameter("ToMonth",tomonthyear[0])); parmCol.Add(new ReportParameter("lang",Convert.ToString(Session["Culture"]))); } mainReportViewer.PromptAreaCollapsed = true; mainReportViewer.AsyncRendering = true; mainReportViewer.ServerReport.Timeout = System.Threading.Timeout.Infinite; mainReportViewer.ServerReport.SetParameters(parmCol); mainReportViewer.ShowParameterPrompts = true; mainReportViewer.LocalReport.EnableHyperlinks = true; mainReportViewer.ServerReport.Refresh(); } catch (Exception ex) { CommonFunctions.createLog("Reports : " + ex.Message); } } 当我尝试查看报告(这是asp.net mvc中的视图)时,它会在新选项卡中打开以查看报告(这是带有代码文件的aspx页面),并且如果我尝试打开上一个选项卡中的任何链接,则表示在完全加载新选项卡中的报表之前,页面不会加载.我尝试了所有事情,但尚未找到解决方案.需要帮忙 解决方法
您需要分析您的应用程序.很可能您的请求已排队,试图获取用户会话状态的写锁定. 您可以阅读有关问题here的更多信息:
强调我的. 为了缓解这种情况,you can enable or disable session state for individual pages,or declare your usage of session state as “read only”. 注意不要意外选择错误类型的会话状态,但是(启用,禁用,只读).需要正确设置才能使应用程序正常工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-membership – 在另一个站点中实现Umbraco成员资格
- WPF 增加合计一栏
- asp.net-mvc – ASP.NET MVC 3 Treeview
- asp.net – 在MVC5应用程序中使用OWIN软件包的好处
- asp.net-mvc – 测量时间调用ASP.NET MVC控制器操作
- ASP.NET:存储应用程序设置的位置?
- asp.net – Orchard CMS和Sitefinity CMS
- ASP.NET MVC3 RAZOR:文件上载给出文件计数为零
- asp.net – Web.Config文件中的多行文本
- asp.net – C#如何在GridView上创建Hyperlink OnClick事件?