1

我正在处理的 ASP.NET 站点有一些 SSRS 报告作为页面。对于这些页面中的每一个(但不是其他任何页面),母版页的 RadMenu 下拉菜单都不起作用,这似乎是因为报告视图页面正在通过 Page_Init 事件的脚本管理器禁用部分呈现。

不幸的是,原来的开发者已经不在了,而且这里似乎没有人确切知道为什么部分渲染被禁用了。如果我确实启用了部分渲染,似乎什么都不会破坏,但考虑到选择似乎是多么刻意,这似乎是一个不好的理由。

这是 Page_Init 事件的代码:

    protected void Page_Init(object sender, EventArgs e)
    {
        ScriptManager sm = ScriptManager.GetCurrent(this);
        if (sm != null)
        {
            sm.EnablePartialRendering = false;
        }
    }

RadMenu 在我的母版页上,如下所示:

    <telerik:RadMenu ID="MasterPageMenu" runat="server" Height="20px" Style="top: 0px;
        left: 0px;" Width="100%" CssClass="RadMenuLevel" EnableRoundedCorners="True"
        OnItemDataBound="MasterPageMenu_ItemDataBound" OnClientItemClicking="onClicking"
        DataTextField="title" DataNavigateUrlField="url">
        <DefaultGroupSettings OffsetX="11" OffsetY="2" />
    </telerik:RadMenu>

所有的报告都使用一个 ReportViewer.aspx 页面来加载,下面是代码:

        <%@ Page Title="Reports" Language="C#" MasterPageFile="~/HPTS.Master"       AutoEventWireup="true"
        CodeBehind="ReportViewer.aspx.cs" Inherits="HPTS.HPTSAdmin.ReportViewer" %>

    <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
        Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
        <style type="text/css">
            .heightTest
            {
                height: auto;
            }
            .fullheight
            {
                margin-bottom: 120px;
            }
            #testdiv
            {
                display:table;
                width:1250px;
                height:auto;
            }
        </style>

        <script language="JavaScript" type="text/JavaScript">

    window.onload=function resize(){

    var viewer = document.getElementById("testdiv");

    var htmlheight = document.documentElement.clientHeight;

    viewer.style.height = (htmlheight - 120) + "px";

    }

        </script>

    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="cphHPTS" runat="server">
        <telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxyforReports" runat="server">
            <AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="ReportViewerControl">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="ReportViewerControl" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
            </AjaxSettings>
        </telerik:RadAjaxManagerProxy>
        <div id="testdiv" style="width: 100%">
            <br />
            <rsweb:ReportViewer ID="ReportViewerControl" runat="server" Font-        Names="Verdana"
                Font-Size="8pt" ProcessingMode="Remote" CssClass="fullheight" Height="8.5in"
                Width="100%" SizeToReportContent="true">
                <ServerReport ReportPath="" ReportServerUrl="" />
            </rsweb:ReportViewer>
        </div>
    </asp:Content>
4

1 回答 1

1

我已经启用了部分渲染并将更改部署到我们的 QA 实例和我们的 Staging 实例,并且启用了部分渲染对页面没有任何负面影响,因此看起来没有问题。

于 2013-03-08T15:31:01.920 回答